27、Selenium + Python 实现 UI 自动化测试-调用 JavaScript 修改元素属性
来源:互联网 发布:淘宝倒卖游戏币犯法吗 编辑:程序博客网 时间:2024/05/16 11:40
前面在讲 Selenium 操作日期时间控件的时候,遇到过这样的问题:某些时候日期时间框有个readonly 属性,不允许直接输入,当时解决的办法是,删除掉这个属性,然后再输入。结合我们之前学的 JavaScript 可以操作HTML 元素属性的知识,今天再回头看一下。
1、实例1:删除属性值,使只读元素可以输入
内容请参考:http://blog.csdn.net/duzilonglove/article/details/78246903
2、实例2:删除属性,允许输入
我们手写了一个html,如下
打开页面,尝试在输入框内写入内容,发现不可输入:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Storm</title></head><body> <p id="p1" >这里有不可输入的输入框</p> <input style="text" id="input" readonly></body></html>
尝试用Selenium 输入内容:
from selenium import webdriverimport timedriver = webdriver.Chrome()driver.get("file:///e:/python/test1/day2/test1.html")driver.find_element_by_id('input').send_keys('aaa')time.sleep(4)driver.quit()虽然没有报错,但是内容并没写入到文本框。
改进,删除掉readonly属性
from selenium import webdriverimport timedriver = webdriver.Chrome()driver.get("file:///e:/python/test1/day2/test1.html")js2 = "document.getElementById('input').removeAttribute('readonly')"driver.execute_script(js2)driver.find_element_by_id('input').send_keys('aaa')time.sleep(4)driver.quit()运行成功,成功输入内容
3、使不可见元素变为可见元素
示例暂缺
4、点击元素(某些场景下元素点击无效,使用js 实现点击效果)
效果如下:
ele = driver.find_element_by_id('reg_butt')js1 = "arguments[0].click()"driver.execute_script(js1,ele)测试场景没找到,示例暂缺
5、示例5:
项目中遇到这样一个场景
点击弹框选择会诊医生,由于弹框比较难操作,所以打算直接sendkeys,医生名字,发现并不成功
手动选择某个医生,然后对比下该元素哪个属性变化了
发现input 元素并没有属性变化,value值还是空。但是仔细看,他上面的兄弟节点,input 的value属性多了一个数值。好的,大概就是这个意思了。
js1 = "document.getElementById('eid').setAttribute('value','3240383');"driver.execute_script(js1)经试验,成功实现了选择某个医生的效果。
阅读全文
0 0
- 27、Selenium + Python 实现 UI 自动化测试-调用 JavaScript 修改元素属性
- 3、Selenium + Python 实现 UI 自动化测试-元素定位
- 4、Selenium + Python 实现 UI 自动化测试-定位元素吗?
- 26、Selenium + Python 实现 UI 自动化测试-调用 JavaScript 操作滚动条
- 15、Selenium + Python 实现 UI 自动化测试-操作JavaScript弹窗
- Selenium调用JavaScript修改元素属性
- 5、Selenium + Python 实现 UI 自动化测试-driver基本操作、属性
- 1、Selenium + Python 实现 UI 自动化测试-环境搭建
- 6、Selenium + Python 实现 UI 自动化测试-鼠标操作
- 7、Selenium + Python 实现 UI 自动化测试-键盘操作
- 8、Selenium + Python 实现 UI 自动化测试-操作浏览器标签
- 9、Selenium + Python 实现 UI 自动化测试-操作浏览器窗口
- 10、Selenium + Python 实现 UI 自动化测试-操作输入框
- 12、Selenium + Python 实现 UI 自动化测试-操作下拉列表
- 13、Selenium + Python 实现 UI 自动化测试-操作表格
- 16、Selenium + Python 实现 UI 自动化测试-其它弹窗
- 17、Selenium + Python 实现 UI 自动化测试-等待
- 20、Selenium + Python 实现 UI 自动化测试-AutoIT工具
- Python学习(十七)——re类与正则表达式
- SQL 语句的类型和 用法
- 矩阵快速幂(求斐波拉契数列的第N项)
- 关于并发开发的一些概念
- 常用权限和依赖
- 27、Selenium + Python 实现 UI 自动化测试-调用 JavaScript 修改元素属性
- 07-图4 哈利·波特的考试
- ThinkPHP错误异常处理
- Linux系统中的系统日志管理
- 2017-10-18校内训练题题解
- 成为一名Java高级架构师到底需要学习什么?
- matconvnet用到的 matlab函数
- java 使用异或运算交换
- 【error】postgresql relation does not exist