UI自动化学习过程get的知识点
一、使用Xpath定位元素:
1、定位的元素是从1开始,而非0开始
例:定位群内成员第一行第一个元素
driver.find_element_by_xpath("//XCUIElementTypeTable/XCUIElementTypeCell[1]/XCUIElementTypeButton[1]")
2、滑动页面距离在x=0,y=185时,对已知元素进行点击不能成功跳转
例:进入到页面,先滑动页面再定位一个元素进行点击操作
代码:
使用swipe
driver.execute_script("mobile: swipe", {"direction": "up"}) // 大概是height=185px,
使用dragFromToForDuration
driver.execute_script("mobile:dragFromToForDuration",{"duration":0.5,"element":None,"fromX":0,"fromY":650,"toX":0,"toY":450}) // height = 200px
driver.find_element_by_xpath("//XCUIElementTypeTable/XCUIElementTypeCell[5]").click() // 点击该元素后页面未跳转
3、页面上资源太大时,定位元素会失败()
待补充
二、关于WebDriverException错误
1、引入WebDriverException错误
from selenium.common.exceptions import WebDriverException
2、常见的错误:
NoSuchAttributeException // 元素未找到
NoSuchElementException: Message: An element could not be located on the page using the given search parameters.
WebDriverException // 操作的元素,还未加载进来吧,例如,页面元素加载完,我操作非当前屏幕的元素
WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Invalid parameter not satisfying: point.x != INFINITY && point.y != INFINITY
3、点击一个元素时(该元素被遮挡),命令会执行成功,页面无变化
例:在iPhone6sp上的微信-通讯录-第10条数据就是被遮挡的元素
driver.find_element_by_xpath("//XCUIElementTypeTable/XCUIElementTypeCell[10]").click() // 执行不会报错
三、其他
1、除法中仅取整数部分,小数第一位大于0就向整数部分进1
使用函数:round()、str()、int()、split()
例子:int(str(round(x / y + 0.4)).split(".")[0]) // x和y中有一个是float类型
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Python 数据库骚操作 -- MySQL
目录 ● 前言 ● MySQL GUI 工具 ● MySQL 遇上 Docker ● 增删改查 ● 一对多 ● 一对一 ● 多对多 ●后记 前言 今天这篇是三大数据库的结尾篇,前面两篇分别是: 《Python 数据库骚操作 -- MongoDB》 《Python 数据库骚操作 -- Redis》 今天这篇主要介绍 MySQL 的 orm 库 SQLAlchemy 。那什么是 orm 呢?Object Relational Mapper,描述程序中对象和数据库中数据记录之间的映射关系的统称。介绍完了,那就走起呗! MySQL GUI 工具 首先介绍一款 MySQL 的 GUI 工具 Navicat for MySQL,初学 MySQL 用这个来查看数据真的很爽。可以即时看到数据的增删改查,不用操作命令行来查 MySQL 遇上 Docker 继续分享一下 Docker compose 代码片段,用过 docker 之后,我相信你再也不会为了配置各种开发环境而烦恼了。 version: '3' services: mysql_container: image: mysql ports: - ...
- 下一篇
IMM 服务(智能媒体管理)通过 MNS 队列通知获取异步任务执行结果--Python示例
IMM服务(智能媒体管理)的 API 提供异步接口能力,处理大文件的文档转码、图像或者视频的 AI 处理,此时采用轮训的方式(比如文档转码的 GetOfficeConversionTask接口)效率不高,通过 MNS 队列通知获取异步任务执行结果是一种高效的方式,转载文章 提供了 Python 示例,供大家参考。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主