Selenium 提供了两种执行 JavaScript 脚本的方法:

execute_script:同步执行——常用

execute_async_script:异步执行

应用场景1:时间输入框

有些时间输入框控件,添加了 readonly 属性,限制该控件只读,不可写入,那就无法直接通过 send_keys() 输入内容。

对于这种情况的处理方式及步骤:

  1. 通过 JavaScript 脚本移除 readonly 属性
  2. 清空输入框内容
  3. 按时间格式输入信息

from selenium import webdriver
from time import sleepdriver = webdriver.Chrome()  # 打开浏览器
driver.get("https://www.12306.cn/index/")  # 跳转至测试页面sleep(1)
js = "document.getElementById('train_date').removeAttribute('readonly')"  # 编写 JavaScript 语句移除 readonly 属性
driver.execute_script(js)  # 同步执行 JavaScript 语句
element = driver.find_element_by_id("train_date")  # 定位元素
element.clear()  # 清空内容
sleep(1)
element.send_keys("2020-08-10")  # 输入内容
sleep(2)driver.quit()  # 关闭浏览器

应用场景2:操作滚动条

操作滚动条常用的 JavaScript 语句:

序号 JavaScript 语句 描述
1 document.documentElement.scrollTop=1000 移动到距离顶部 1000 的位置
2 window.scrollTo(0, document.body.scrollHeight*0.5) 按高度比例移动到绝对位置(x轴方向, y轴方向)
3 window.scrollTo(0, 1000) 移动到绝对坐标位置(x轴方向, y轴方向)
4 window.scrollBy(0, -200) 相对当前坐标移动相应距离(x轴方向, y轴方向)
from selenium import webdriver
from time import sleepdriver = webdriver.Chrome()  # 打开浏览器
driver.get("https://www.douban.com/")  # 跳转至测试页面sleep(1)
js1 = "document.documentElement.scrollTop=500"  # y轴方向 移动到距离顶部 500 的位置
js2 = "window.scrollTo(0, document.body.scrollHeight*0.5)"  # y轴方向 移动到坐标为总高度的50% 的位置
js3 = "window.scrollTo(0, 1000)"  # y轴方向 移动到高度为 1000 的位置
js4 = "window.scrollBy(0, -500)"  # 相对当前位置向上移动 500driver.execute_script(js1)  # 执行 JavaScript 语句
sleep(3)
driver.execute_script(js2)  # 执行 JavaScript 语句
sleep(3)
driver.execute_script(js3)  # 执行 JavaScript 语句
sleep(3)
driver.execute_script(js4)  # 执行 JavaScript 语句sleep(3)
driver.quit()  # 关闭浏览器

总结

Selenium 执行JavaScript语句相关推荐

  1. Python:模拟登录、点击和执行 JavaScript 语句案例

    案例一:网站模拟登录 # douban.pyfrom selenium import webdriver from selenium.webdriver.common.keys import Keys ...

  2. 案例三:执行 JavaScript 语句

    案例三:执行 JavaScript 语句 隐藏百度图片 from selenium import webdriverdriver = webdriver.PhantomJS() driver.get( ...

  3. javascript返回页面顶部_RobotFramework: 执行JavaScript语句

    场景 在做web项目时,通常需要开发一些自动化用例,自动化用例执行可以设置触发条件,也可以定时执行,在每次代码发生变更的情况下,自动触发自动化用例执行,可以及时检测修改代码是否引入新的问题,提高产品的 ...

  4. 在Python中用Selenium执行JavaScript

    Selenium自己不带浏览器, 需要与第三方浏览器结合在一起使用.例如在Firefox上运行Selenium. PhantomJS是一个"无头"浏览器. 它会把网站加载到内存并执 ...

  5. 爬虫系列:在 Python 中用 Selenium 执行 Javascript

    Selenium 是一个强大的网络数据采集工具,其最初是为网站自动化测试而开发的.近几年,它还被广泛用于获取精确的网站快照,因为它们可以直接运行在浏览器上.Selenium 可以让浏览器自动加载页面, ...

  6. selenium执行js脚本

    说明:本篇博客基于selenium 4.1.0 JavaScript是运行在客户端(浏览器)和服务器端的脚本语言,允许将静态网页转换为交互式网页.可以通过 Python Selenium WebDri ...

  7. selenium,webdriver 执行js语句 对象是百度

    代码要多敲 注释要清晰 最后的两种方法,没有实现我想要的结果 有知道的朋友,给我留言吧 #执行js语句from selenium import webdriver import time#生成浏览器 ...

  8. javascript createelement_贝程学院:Selenium与 JavaScript

    一.为什么学习JavaScript 进行web自动化测试也好还是移动端自动化测试也好,必须要对系统实现用到的技术有一定的了解,而JavaScript作为世界上最流行的脚本语言,在电脑.手机.平板上浏览 ...

  9. 两个JS文件使用全局变量并互相调用funciton,JS判断checkbox状态,延迟执行JS语句

    HTML: <!DOCTYPE html> <html><head><meta charset="utf-8"><title& ...

最新文章

  1. 关于KN95口罩:可以使用多久?要不要呼吸阀?怎么佩戴?
  2. 机器学习敲门砖:任何人都能看懂的TensorFlow介绍
  3. Sprint软银宣布计划2019年推出5G商用服务
  4. js进阶 11-22/23 js如何实现选项卡
  5. java异常处理机制详解
  6. php中函数的定义格式,在php中函数定义的格式
  7. 在python中使用csv库以字典格式读写csv文件
  8. eclipse 设置workspace编码格式
  9. 被质疑“在开源社区执行微软意愿”,.NET 基金会前董事为其提交的 PR 道歉并辞职...
  10. 神奇,教你用随机数打印hello world
  11. StringBuffer和StringBuild
  12. 14寸笔记本电脑推荐_2020笔记本电脑推荐(小米篇)
  13. IIS7 经典模式和集成模式的区别分析(转载)
  14. Pokémon Go呼应设计:让全世界玩家疯狂沉迷
  15. c语言time函数详解,C语言Time函数
  16. SQL2005安装及连接
  17. 单机:Oracle 19C 数据库一键安装
  18. 【Windows】电脑蓝牙突然无法使用,解决办法来了
  19. 一个ABC眼中的中国创业环境
  20. 吴文俊: 中国古代数学对世界文化的伟大贡献

热门文章

  1. 云服务器 ECS > 安全 > 实例RAM角色 > 概述
  2. Linux学习总结(61)——Ansible 快速入门学习
  3. matlab编写识别手写数字_使用PYNQ搭建手写数字识别工程小白级说明(完整版)
  4. 网站的php主题怎么删掉,简介如何去除WordPress主题版权保护的方法 | 垃圾站
  5. 介绍一个Spring Cloud分布式微服务架构图
  6. 如何利用phpize在生产环境中为php添加新的扩展php-bcmath
  7. 最新 IntelliJ Idea 2017 激活方法(转)
  8. Comcast Xfinity家庭安全系统被曝严重漏洞
  9. 基于node的登入例子(node-koa-mongoose)
  10. AR让明信片重获新生,旅游党的新姿势