selenium将我们要进行自动化操作的网页内嵌到他自己的网页,然后通过脚本语言(js)去执行自动化操作
提高我们自动化用例执行的效率和稳定性
- 时间日历挂件,js可以获取浏览器提供的很多对象,提供了丰富的页面元素操作方法,进行操作
- 文件上传
selenium难以实现的操作
- 一些隐藏的按钮,通过js更改元素属性,显示隐藏按钮
- 滚动条
- 前端限制输入
js简单操作
使用driver.execute_script('js脚本')来实现自动化driver.execute_script是selenium自带的一个方法
js对象
浏览器对象(在开发者工具中的console中输入,内部宽高:是指除去菜单栏、工具栏、边框等占位元素后,用于显示网页的净宽高)
window
- window.innerHeight获取浏览器内高
- window.innerWidth获取浏览器内宽
- window.outerHeight获取浏览器外高
- window.outerWidth获取浏览器外宽
- window.open("https://www.baidu.com")打开新的网址
location:表示当前页面的url信息(一个完整的url)
- location.href获取当前页面的url值
- location.assign("https://www.baidu.com")加载一个新的url
- location.reload()重新加载当前页
document:对象表示当前页面。犹豫HTML在浏览器中以DOM形式表示为树形结构,document对象就是整个DOM树的根节点
- 最长用的查找是根据ID和Tag Name
- click()方法操作元素
- value属性赋值实现关键字输入
- readOnly
- textContent获取文本值
- 获取元素属性值,直接更改属性值
js在自动化中的应用
滑动滚动条(因为如果页面没有完全显示,element如果是在下拉之后才能显示出来的,只能先滚动到该元素才能进行元素click,否则不能click)
- window.scrollTo(0,document.body.scrollHeight)
- window.scrollBy(0,document.body.scrollHeight)
- scrollTo:0表示要在窗口文档显示区左上角显示的文档的 x 坐标,document.body.scrollHeight要在窗口文档显示区左上角显示的文档的 y 坐标
- scrollBy:0表示把文档向右滚动的像素数,document.body.scrollHeight把文档向下滚动的像素数
扩展
- 非页面类型的滚动条:scrollTop方法
- 滚动到指定元素:scrollIntoView
- innerHTML
- querySelector
- js获取cookie