- 使用 selenium 直接在当前页面中进行 js 交互
- 常用的几种操作使用 js 实现
js 的处理
- selenium 能够执行 js,这使得 selenium 拥有更为强大的能力。既然能执行 js,那么 js 能做的事,selenium 应该大部分也能做
- 直接使用 js 操作页面,能解决很多 click() 不生效的问题
- 页面滚动到底部,顶部
- 处理富文本,时间控件的输入
selenium 中如何调用 js
- 例如 js 代码:
window.alert('Selenium 弹窗测试') a = document.getElementById('kw').value document.title
- selenium 如何调用 js,selenium 提供了 js 的一个 api
JavascriptExecutor jsDriver = (JavascriptExecutor)driver; driver.execute_script("window.alert('Selenium 弹窗测试')"); driver.execute_script("a = document.getElementById('kw').value;window.alert(a)")
- 如何返回呢?
jsDriver.executeScript("return document.getElementById('kw').value")
- execute_script:执行 js
- return:可以返回 js 的返回结果
- execute_script:arguments 传参
js 处理-案例-时间控件
- 大部分时间控件都是 readonly 属性,需要手动去选择对应的时间,手工测试中很容易做到,自动化中对控件的操作可以使用 js 来操作
- 处理时间控件思路:
- 要取消日期的 readonly 属性
- 给 value 赋值
- 写 js 代码来实现如上的1,2点,再 webdriver 对 js 进行处理。