python UI自动化之js操作
js处理iframe无需先切换到iframe上,再切回来操作。它可以在iframe上和主页面上来回自由操作。
switch方法需要先切换到iframe上,操作完之后又的切换回来(很容易忘记切换回来),操作比较繁琐。
1、js处理富文本(富文本格式如禅道中的添加bug页面)

带iframe的元素,用js去操作contentWindow(相当于切换到iframe)
body = "这里是通过js发的正文内容" # js处理iframe问题(js代码太长了,我分成两行了)
js = 'document.getElementById("Editor_Edit_EditorBody_ifr").contentWindow.document.body.innerHTML="%s"' % body
driver.execute_script(js)
2、js定位元素的方法
(1) 通过id获取
document.getElementById("id")------获取的是单个
(2)通过name获取
document.getElementsByName("name")[0]-----获取的是多个
(3)通过标签名获取元素
document.getElementsByTagName("tag")[0]-----获取的是多个
(4)通过class类获取元素(IE8以下不支持)
document.getElementsByClassName("class")[0]-----获取的是多个
(5)通过css选择器获取元素
document.querySelectorAll("css selector")
兼容性:IE8及其以下版本的浏览器只支持CSS2标准的选择器语法
3、js处理时间控件
**selenium方法输入日期前,一定要先清空文本,要不然无法输入成功的。并且输入日期后,会自动弹出日历控件,随便点下其它位置就好了,用js方法传入日期,就不会弹啦!
一般日历控件无法手动输入时间,而要代码模拟手动选择时间特别麻烦。
要想手动输入时间,首先要将日历的readonly属性去掉,然后再给日历输入框赋值
js='''document.getElementById("id").removeAttribute("readonly");
document.getElementById("id").value="2019-08-19";'''
driver.execute_script(js)

4、div内嵌滚动条
首先定位到有滚动条的元素,然后再通过scrollTop、scrollLeft控制滚动条
js1='document.getElementById("id").scrollTop=100;'------控制竖向滚动条
driver.execute_script(js)
js2='document.getElementById("id").scrollLeft=1000;'------控制横向滚动条
driver.execute_script(js2)
5、js处理浏览器滚动条
#滚动到底部
js = "window.scrollTo(0,document.body.scrollHeight)"
driver.execute_script(js) #滚动到顶部
js = "window.scrollTo(0,0)"
driver.execute_script(js) # 聚焦元素
target = driver.find_element_by_xxxx()
driver.execute_script("arguments[0].scrollIntoView();", target)
python UI自动化之js操作的更多相关文章
- python UI自动化之JS定位
1.话不多说,直接贴入代码 上面的 document.getElementById 可以替换成别的定位方式,比如: 通过name获取:document.getElementsByName 通过标签获取 ...
- (appium+python)UI自动化_09_unittest批量运行测试用例&生成测试报告
前言 上篇文章[(appium+python)UI自动化_08_unittest编写测试用例]讲到如何使用unittets编写测试用例,并执行测试文件.接下来讲解下unittest如何批量执行测试文件 ...
- Python+Selenium自动化-模拟键盘操作
Python+Selenium自动化-模拟键盘操作 0.导入键盘类Keys() selenium中的Keys()类提供了大部分的键盘操作方法:通过send_keys()方法来模拟键盘上的按键. # ...
- Python+Selenium自动化 模拟鼠标操作
Python+Selenium自动化 模拟鼠标操作 在webdriver中,鼠标的一些操作如:双击.右击.悬停.拖动等都被封装在ActionChains类中,我们只用在需要使用的时候,导入这个类就 ...
- python ui自动化之元素定位和常用操作
做ui自动化的最基础的就是页面元素定位了,如果连页面元素都定位不到,自动化从何谈起呢?接下来我们就看看页面元素定位的方法吧!(这里就用百度页面来进行演示) 一.最通用的几种定位方式: 1.通过id定位 ...
- Python—UI自动化完整实战
实战项目 均来源于互联网 测试报告2017年11月29日优化后的测试报告:https://github.com/defnngj/HTMLTestRunner 1.项目概述: 本实战已126邮箱为例子进 ...
- (appium+python)UI自动化_01_自动化环境搭建【MAC版】
Appium简介 Appium是一个开源的.跨平台的测试框架,主要用来进行app UI自动化,适用于原生应用.混合应用和移动网页应用(H5页面).目前支持Python.JavaScript.Objec ...
- Python UI自动化
Python3--Uiautomator2--Pytest--Alure使用 官方源码GitHub地址:https://github.com/openatx/uiautomator2 介绍 uiaut ...
- (appium+python)UI自动化_07_app UI自动化实例【叮咚搜索加车为例】
前言 初学UI自动化的小伙伴,在配置好appium+python自动化环境后,往往不知道如何下手实现自动化.小编在初期学习的时候也有这种疑惑,在此以叮咚买菜app-搜索加车为实例,展示下appium是 ...
随机推荐
- python—lambda函数,三个常用的高阶函数
"""lambda 参数列表 : 返回值lambda 参数形式: 1.无参数:lambda:100 2.一个参数:lambda a: a 3.默认参数:lambda a, ...
- PAT甲级代码仓库
大道至简,知易行难.希望能够坚持刷题. PAT甲级真题题库,附上我的代码. Label Title Score Code Level 1001 A+B Format 20 1001 * 1002 A+ ...
- 数据库中间件DBLE学习(二) 学习配置schema.xml
前言 一边有一个经常引诱我让我"娱乐至死"的视频,还有一个不停"鞭策"我让我快点学习的大BOSS.正是有这两种极端的爱才让我常常在自信中明白自己努力的方向.嗯, ...
- beego的请求数据处理
我们经常需要获取用户传递的数据,包括 Get.POST 等方式的请求,beego 里面会自动解析这些数据,你可以通过如下方式获取数据: GetString(key string) string Get ...
- 吴裕雄--天生自然HADOOP操作实验学习笔记:hdfs分布式文件系统安装
实验目的 复习安装jdk 学习免密码登录 掌握安装配置hdfs集群的方法 掌握hdfs集群的简单使用和检查其工作状态 实验原理 1.hdfs是什么 hadoop安装的第一部分是安装hdfs,hdfs是 ...
- ArcMap 发布地图服务,提示发布工具没有启动
Error: The server is not ready for publishing. Please check if the Publishing Tools on the server ar ...
- Tomcat指定特定的java
Tomcat指定特定的java 制作人:全心全意 安装好Tomcat后,进入bin目录,找到setclasspath.bat或setclasspath.sh文件,在文件前加入以下内容 Windows: ...
- .net core 简单定时程序
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; using Orleans; using S ...
- 在csv表格中修改/追加某行数据
思路: 文本文件不能随意穿插信息,但是通过使用Seek()方法,可以在读取文本文件中移动光标从而修改所要修改的行. 思路步骤: 1.读取文件,打开csv文件,获取文件流,seek移动光标到开始, fo ...
- Bonny校园app使用体验
Bonny校园是一款集校园表白墙.失物招领处和二手市场集一体的一款校园app,旨在帮助大学生解决校内的生活问题.这款app功能比较齐全,表白墙内含有许多有趣的信息展示,失物招领处内可以详细的展示捡到东 ...