Selenium23-JavaScript

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

posted @ 2022-12-26 14:56  暄总-tester  阅读(72)  评论(0编辑  收藏  举报