Selenium 执行JavaScript语句
Selenium 提供了两种执行 JavaScript 脚本的方法:
execute_script
:同步执行——常用
execute_async_script
:异步执行
应用场景1:时间输入框
有些时间输入框控件,添加了 readonly
属性,限制该控件只读,不可写入,那就无法直接通过 send_keys()
输入内容。
对于这种情况的处理方式及步骤:
- 通过 JavaScript 脚本移除
readonly
属性- 清空输入框内容
- 按时间格式输入信息
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语句相关推荐
- Python:模拟登录、点击和执行 JavaScript 语句案例
案例一:网站模拟登录 # douban.pyfrom selenium import webdriver from selenium.webdriver.common.keys import Keys ...
- 案例三:执行 JavaScript 语句
案例三:执行 JavaScript 语句 隐藏百度图片 from selenium import webdriverdriver = webdriver.PhantomJS() driver.get( ...
- javascript返回页面顶部_RobotFramework: 执行JavaScript语句
场景 在做web项目时,通常需要开发一些自动化用例,自动化用例执行可以设置触发条件,也可以定时执行,在每次代码发生变更的情况下,自动触发自动化用例执行,可以及时检测修改代码是否引入新的问题,提高产品的 ...
- 在Python中用Selenium执行JavaScript
Selenium自己不带浏览器, 需要与第三方浏览器结合在一起使用.例如在Firefox上运行Selenium. PhantomJS是一个"无头"浏览器. 它会把网站加载到内存并执 ...
- 爬虫系列:在 Python 中用 Selenium 执行 Javascript
Selenium 是一个强大的网络数据采集工具,其最初是为网站自动化测试而开发的.近几年,它还被广泛用于获取精确的网站快照,因为它们可以直接运行在浏览器上.Selenium 可以让浏览器自动加载页面, ...
- selenium执行js脚本
说明:本篇博客基于selenium 4.1.0 JavaScript是运行在客户端(浏览器)和服务器端的脚本语言,允许将静态网页转换为交互式网页.可以通过 Python Selenium WebDri ...
- selenium,webdriver 执行js语句 对象是百度
代码要多敲 注释要清晰 最后的两种方法,没有实现我想要的结果 有知道的朋友,给我留言吧 #执行js语句from selenium import webdriver import time#生成浏览器 ...
- javascript createelement_贝程学院:Selenium与 JavaScript
一.为什么学习JavaScript 进行web自动化测试也好还是移动端自动化测试也好,必须要对系统实现用到的技术有一定的了解,而JavaScript作为世界上最流行的脚本语言,在电脑.手机.平板上浏览 ...
- 两个JS文件使用全局变量并互相调用funciton,JS判断checkbox状态,延迟执行JS语句
HTML: <!DOCTYPE html> <html><head><meta charset="utf-8"><title& ...
最新文章
- 关于KN95口罩:可以使用多久?要不要呼吸阀?怎么佩戴?
- 机器学习敲门砖:任何人都能看懂的TensorFlow介绍
- Sprint软银宣布计划2019年推出5G商用服务
- js进阶 11-22/23 js如何实现选项卡
- java异常处理机制详解
- php中函数的定义格式,在php中函数定义的格式
- 在python中使用csv库以字典格式读写csv文件
- eclipse 设置workspace编码格式
- 被质疑“在开源社区执行微软意愿”,.NET 基金会前董事为其提交的 PR 道歉并辞职...
- 神奇,教你用随机数打印hello world
- StringBuffer和StringBuild
- 14寸笔记本电脑推荐_2020笔记本电脑推荐(小米篇)
- IIS7 经典模式和集成模式的区别分析(转载)
- Pokémon Go呼应设计:让全世界玩家疯狂沉迷
- c语言time函数详解,C语言Time函数
- SQL2005安装及连接
- 单机:Oracle 19C 数据库一键安装
- 【Windows】电脑蓝牙突然无法使用,解决办法来了
- 一个ABC眼中的中国创业环境
- 吴文俊: 中国古代数学对世界文化的伟大贡献
热门文章
- 云服务器 ECS > 安全 > 实例RAM角色 > 概述
- Linux学习总结(61)——Ansible 快速入门学习
- matlab编写识别手写数字_使用PYNQ搭建手写数字识别工程小白级说明(完整版)
- 网站的php主题怎么删掉,简介如何去除WordPress主题版权保护的方法 | 垃圾站
- 介绍一个Spring Cloud分布式微服务架构图
- 如何利用phpize在生产环境中为php添加新的扩展php-bcmath
- 最新 IntelliJ Idea 2017 激活方法(转)
- Comcast Xfinity家庭安全系统被曝严重漏洞
- 基于node的登入例子(node-koa-mongoose)
- AR让明信片重获新生,旅游党的新姿势