Python+Selenium4自动化之JS属性
应用场景
在自动化中, 能对JS代码进行增、删、改的话,可以帮助我们解决很多问题,
如:修改<a>标签的target属性,让它不打开新的窗口(_blank),从而不用频繁使用switch_to进行窗口之间的切换。
如:日期的输入框被锁定无法直接输入,需要点开日历控件后,从日历控件上点击日期,这时就可以删除日期控件元素中限制输入的属性(readonly)后直接输入日期。
使用JS修改HTML元素,是在浏览器解析后将其删除或添加,源码不会改变。
基本使用
使用JS定位
JS的定位,可以使用Id \Class(类名)\TagName(标签)来定位元素,两者在使用上有点不同
- 使用ID定位时,定位到的是单个对象
- 使用CLASS和TagName定位的时候,返回的是复数对象(类似于elements的复数定位),使用的时候需要用 [下标] 指定要第几个对象
JS进行的操作(⭐)
运行
调用Selenium的方法execute_scripts(定位)
在浏览器中执行JavaScript代码(使用引号包裹)。
使用selenium的定位方法(⭐)
我们也可以使用arguments对象,在selenium中定位之后再传入JS使用增删改操作
arguments对象包含了函数运行时的所有参数,arguments[0]就是第一个参数.
以上为个人学习记录,欢迎各位指导补充!