一,简介
1)selenium能够处理js,这使selenium拥有更为强大的能力,既然能够执行js,那么js能做的事情,selenium大部分也能做
2)直接使用js操作页面,能解决很多click()不生效的问题
3)页面滚动到底部,顶部
4)处理富文本,时间控件的输入
二,selenium中如何调用js
1) execute_script(script, *args): 执行js
3) return: 可以返回js的返回结果
2) execute_script: arguments传参
三,示例
1) js: document.title 获取页面标题
selenium: driver.execute_script("return document.title"))
2)js: window.alert("hello selenium”) 弹出alert弹窗
selenium: driver.execute_script("window.alert('hello selenium')")
3) js:JSON.stringify(performance.timing) 获取当前页面的加载速度等数据
selenium: driver.execute_script("return JSON.stringify(performance.timing)
4) 滑动页面
如:百度搜索后一直滑动到最底部,点击下一页
js:document.documentElement.scrollTop=10000 将页面滑动至底部,给一个非常大的值就可以
document.documentElement.scrollTop=0 给一个非常小的值就可以滑动到顶部
document.getElementById("su") 可以通过这种方式获取元素
window.scrollTo(0,document.body.clientHeight) 滑动到可视窗口的最底部
selenium:滑动到target 为可见状态:
target =self.driver.find_element_by_id("help") 或 target =driver.execute_script("return document.getElementById('help')")
self.driver.execute_script("arguments[0].scrollIntoView();", target)
示例:
5)处理时间控件
思路:1.要取消日期的readonly属性;
2.给value赋值;
3.写js代码来实现如上2点,在用webdriver对js进行处理;
示例:
selenium代码: