Python+Selenium - js操作
js操作:日期框
本部分涉及两个知识点:DOM树和js
DOM树教程链接:
https://www.w3school.com.cn/htmldom/index.asp
js教程链接
https://www.w3school.com.cn/js/index.asp
用js在浏览器控制台操作

测试过程中使用js对页面元素进行增删改查
示例1:把元素只读属性取消,变成可手动输入

使用代码实现更改出发日期:
方法一
# js代码
js_code = 'a = document.getElementById("train_date");' \
'a.removeAttribute("readonly");' \
'a.value = ("2021-05-21");'
#执行js代码
driver.execute_script(js_code)
方法二
# 通过Python代码找到元素对象
loc = (By.ID,"train_date")
WebDriverWait(driver,20).until(EC.visibility_of_element_located(loc))
ele = driver.find_element(*loc)
set_time = "2021-05-21"
js_code = 'arguments[0].removeAttribute("readonly");' \
'arguments[0].value = arguments[1];'
driver.execute_script(js_code,ele,set_time)
js_code的arguments[0]是外部传参,即execute_script()函数的ele参数,arguments[1]是execute_script()的set_time参数
用Ctrl+b 查看execute_script()源码,可以发现函数的传参除了script,还有一个 *args,即可以传入多个参数,示例中的ele和set_time就是这个*args的参数列表,[0][1]则代表参数列表的位置
js操作:滚动
大部分网页会自动滚
元素本身:ele.location_once_scrolled_into_view
示例:下面这两行代码,会自动滚到元素位置停住
ele = driver.find_element(*loc)
ele.location_once_scrolled_into_view
js方法:ele.scrollIntoView() 滚动到元素可见区域停住
ele = driver.find_element(*loc)
js_code = 'arguments[0].scrollIntoView()'
driver.execute_script(js_code,ele)
这里推荐使用元素本身的方法就可以了
上述方法并非滚动条操作,若软加载(边滚动边加载),要用滚动条操作
滚动条操作:暂略
Python+Selenium - js操作的更多相关文章
- python selenium 相关操作
selenium : 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Fi ...
- python + selenium + Js 处理轮动条
selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了. 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. 这时候需要借 ...
- python+selenium+js 处理滚动条
selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了. 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. 这时候需要借 ...
- python selenium --browser 操作
本节知识点: 打印URL 将浏览器最大化 设置浏览器固定宽.高 操控浏览器前进.后退 打印URL 上一节讲到,可以将浏览器的title打印出来,这里再讲个简单的,把当前URL打印出来.其实也没啥大用, ...
- Python+selenium(操作隐藏元素)
测试过程中,偶尔会碰到一些页面的隐藏元素,如下,是小编举的一个简单的例子: test.html <html> <head></head> <body> ...
- python+Selenium之操作滚动条
当我们做测试的时候,如果页面过长,就会定位元素失败,这时可以使用move_to_element方法跳到该元素的位置再操作: from selenium.webdriver.common.action_ ...
- Python+selenium 之操作Cookie
在验证浏览器中cookie是否正确时,有时基于真实cookie的测试是无法通过白盒和集成测试进行的.Webdriver提供了操作Cookie的相关方法,可以读取,添加和删除cookie信息. 文本we ...
- python selenium句柄操作
一.获取当前窗口句柄 1.元素有属性,浏览器的窗口其实也有属性的,只是你看不到,浏览器窗口的属性用句柄(handle)来识别. 2.人为操作的话,可以通过眼睛看,识别不同的窗口点击切换.但是脚本没长眼 ...
- Python+Selenium - 键盘操作
导包代码: from selenium.webdriver.common.keys import Keys 用法: driver.find_element("id","k ...
随机推荐
- kube-router代替kube-proxy+calico
使用kubeadm安装kubernetes,并使用kube-router代替kube-proxy+calico网络. 即:kube-router providing service proxy, fi ...
- Google字体API使用简单示例
一.前面的话 Google总会做些造福大众的事情,例如提供了web在线字体的API,这玩意其实去年就有了,但是字体种类手指头+脚趾头就可以数出来.but 最近,貌似Google对字体API进行了升级, ...
- Android动态调试so库JNI_Onload函数-----基于IDA实现
之前看过吾爱破解论坛一个关于Android'逆向动态调试的经验总结帖,那个帖子写的很好,对Android的脱壳和破解很有帮助,之前我们老师在上课的时候也讲过集中调试的方法,但是现在不太实用.对吾爱破解 ...
- 网站指纹识别工具Whatweb的使用
目录 whatweb 一些常见的Whatweb的扫描 常规扫描 批量扫描 详细回显扫描 扫描强度等级控制 快速本地扫描(扫描内网的主机) 将扫描结果导出至文件内 whatweb whatweb 是ka ...
- 学javaweb 先学Servlet 应用理论很重要
package cn.Reapsun.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.ser ...
- 拷贝构造函数第一个参数最好使用const
拷贝构造函数的第一个参数要求是自身类型的引用,但是没有一定要求具有底层const属性即对常量的引用,但是使用时最好加上const,原因是我们可能在某些"不知道"的情况下对常量对象调 ...
- 安装过程中出现一个错误: No such plugin: cloudbees-folder
上面的错误显示是,安装插件cloudbees-folder失败,是因为下载的Jenkins.war里没有cloudbees-folder插件 需要去 https://updates.jenkins-c ...
- 封装axios在util中
创建util工具类,封装通用的get和post请求 封装axios成工具类,方便大家请求调用 1.创建util文件夹 2.创建request.js 3.封装 //封装请求相关方法 //初始化一个axi ...
- CSS中常用的函数
一.CSS函数的用法 设置css的属性值时可以使用css函数,如果color:rgba(20,30,50,0.5),css中有很多这样的函数. 二.常用的CSS函数 a.calc()函数 这个函数 ...
- [Qt] Librecad 源码分析
libraries jwwlib libdxfrw:一个免费的C++库,用于读写文本格式或二进制格式的DXF文件(C++ library to read and write DXF/DWG files ...