执行JavaScript
- JavaScript(简称js)是运行在客户端(浏览器)和服务器端的脚本语言,允许将静态网页转换为交互式网页。
- 可以通过Selenium执行js,这使selenium拥有更为强大的能力。
执行JavaScript应用场景
- 直接使用js操作页面,能解决很多click()或send_keys(“xx”)不生效的问题
- 全页面截屏、或者高亮元素截屏
- 页面滚动
- 处理时间控件的输入(移除元素隐藏、禁用、只读等限制属性)
执行JavaScript语法
driver.execute_script(js,*args)
element = driver.find_element(By.ID,"keyword")
style = "background:red;border:2px solid yellow;"
driver.execute_script("arguments[0].setAttribute('style',arguments[1]);",element,style)
- 在js里使用关键字return可以返回js的执行结果
title = driver.execute_script("return document.title")
print(title)
JavaScript设置后截屏

用js点击元素和输入数据

页面滚动

滚动到指定页面元素位置

测试日历控件
- Selenium无法模拟日历手工操作时选择日期的具体步骤
- 写js代码来去除日期的readonly属性:
页面元素.removeAttribute(“readonly”); - 写js代码来给日期文本框的value赋值:
页面元素.value=”2022-06-01”;
- https://news.sina.com.cn/ 设置日历日期为:2022-06-01