javaScript在web自动化中的应用
在UI自动化过程中,有时会遇到webdriver 无法实现的操作,这个时候可以通过调用js才能实现的操作
调用方法: driver.execute_script( js语句)
常见调用js的场景如下:
1、 操作浏览器滚动条
虽然 Selenium 可以模拟一些滚动操作,但对于复杂的滚动场景,如特定位置的精确滚动、无限滚动页面的处理等,使用 JavaScript 会更加灵活和精确
- 滚动到页面底部:
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
- 滚动到指定位置:
js = "window.scrollTo(400,600)"
driver.execute_script(js)```
2、元素定位
webdriver因为一些遮挡等情况,无法通过webdriver定位到,这个时候可以用js定位,示例
text = "input text"
js = "var sum=document.getElementById('id'); sum.value='"+ text + "';"
driver.execute script(js)
3、处理浏览器的弹窗
某些特定类型的弹窗,特别是自定义的复杂弹窗,可能无法通过 Selenium 的常规方法处理,需要使用 JavaScript 来控制。比如,处理一个自定义的确认弹窗
4、执行特定的页面动画或交互效果
如果页面中有一些特殊的动画效果或交互逻辑,Selenium 可能无法直接模拟,需要通过 JavaScript 来触发。
比如,触发一个元素的鼠标悬停效果并执行相关的后续操