- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
昨天转发这篇文章时,看到群里有朋友这样说:
这么卷吗?这个框架官方已经不维护了.
姑且不说卷不卷的问题,要是能卷明白,别说还真不错; 。
不维护又怎样?我想学习,想会,分享给很期待这系列的文章的人罢了.
元素定位 ,应该是很多 UI 自动化测试入门学习必会的技能了,下面我将为大家举例演示元素定位的几种方法.
Minium 可以通过 WXSS 选择器定位元素,如下图所示:
如果有[CSS选择器]基础会上手更快 ,如没有可参考 。
示例:
示例代码如下:
# class定位
self.page.get_element(".kind-list-item-hd").click()
# id定位
self.page.get_element("#view").click()
# 属性定位(逻辑运算定位)
self.page.get_element("[id='view'][class='kind-list-item-hd']").click()
# 简单选择器格式 tageName + #id + .className
self.page.get_element("view#view.kind-list-item-hd").click()
看到这里,有的同学可能会条件反射性的想到,右键选择 Copy ,点击 Copy Xpath 或 Copy full Xpath ?
没错,是支持的.
使用xpath语法定位,示例代码如下:
# 绝对定位
self.page.get_element("/page/scroll-view/view/view/view[2]/view/view[1]/view[1]").click()
# 相对定位
self.page.get_element("//view[@id='view']").click()
# 使用属性定位
self.page.get_element("//view[@id='view' and @class='kind-list-item-hd']").click()
# 使用部分属性定位
self.page.get_element("//view[contains(@id,'vi')]").click()
# 使用文本定位
self.page.get_element("//view[text()='视图容器']").click()
个人感觉是完美兼容 Selenium 的 CSS 、XPATH 定位方式的,参考学习 CSS定位入门 、 XPATH定位入门 这两篇.
推荐使用 id/class/标签+属性 。 inner_text/text_contains/value 为增强用法,实现本质还是通过 selector 获取到元素标签后再通过 inner_text/text_contains/value 筛选元素。 示例代码如下:
# 适合没有属性元素定位
self.page.get_element("view", inner_text="视图容器").click()
self.page.get_element("navigator", inner_text="swiper").click()
怎样识别自定义组件 。
wxml
文件或微信开发者工具的 wxml pannel
,标签名字 不在 小程序官方组件列表中的都是 自定义组件 wxml pannel
, 标签下面有 #shadow-root
的, 则为 自定义组件 。例如小程序页面 wxml
中 mytest 、test2、 test22
定位 test2 标签下的 text 的元素 。
示例代码如下:
# 没有元素属性,可以文本定位一试
self.page.get_element("text", inner_text="this is test2").click()
# 绝对对位(dom结构改变就完蛋,不推荐)
self.page.get_element("/page/mytest//test2//view/view/text")
# 使用跨自定义组件的后代选择器
self.page.get_element("mytest>>>test2>>>text") # 自定义组件 mytest组件节点下的test2组件节点下text标签
# 逐层查找定位
self.page.get_element("mytest").get_element("test2").get_element("#test2").get_element("text")
这里我贴出源代码给的注释部分,个人觉得这个注释写的真好,一看就懂,如下图所示:
元素定位小结:
view、text
方式定位元素,有时会因为dom加载不出来找不到元素,源码中参数 max_timeout=0
,有需要可自己指定超时时间。 XPath
,或标签+文本定位 最近又开始焦虑了,虽然家人没催婚,但是到了这个年纪,想有个归属,无奈一直遇人不淑,家里资源用尽,也没人给我介绍对象,还不相信网络,感觉自己没救了,略显尴尬,尬到这些烦恼都不知道跟谁去说! 。
唉,与理想平等交易,同喧嚣保持距离,事已至此,还是先吃饭吧.
最后此篇关于腾讯出品小程序自动化测试框架【Minium】系列(三)元素定位详解的文章就讲到这里了,如果你想了解更多关于腾讯出品小程序自动化测试框架【Minium】系列(三)元素定位详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
全称“Java Virtual Machine statistics monitoring tool”(statistics 统计;monitoring 监控;tool 工具) 用于监控虚拟机的各种运
主要是讲下Mongodb的索引的查看、创建、删除、类型说明,还有就是Explain执行计划的解释说明。 可以转载,但请注明出处。  
1>单线程或者单进程 相当于短链接,当accept之后,就开始数据的接收和数据的发送,不接受新的连接,即一个server,一个client 不存在并发。 2>循环服务器和并发服务器
详解 linux中的关机和重启命令 一 shutdown命令 shutdown [选项] 时间 选项: ?
首先,将json串转为一个JObject对象: ? 1
matplotlib官网 matplotlib库默认英文字体 添加黑体(‘SimHei')为绘图字体 代码: plt.rcParams['font.sans-serif']=['SimHei'
在并发编程中,synchronized关键字是常出现的角色。之前我们都称呼synchronized关键字为重量锁,但是在jdk1.6中对synchronized进行了优化,引入了偏向锁、轻量锁。本篇
一般我们的项目中会使用1到2个数据库连接配置,同程艺龙的数据库连接配置被收拢到统一的配置中心,由DBA统一配置和维护,业务方通过某个字符串配置拿到的是Connection对象。  
实例如下: ? 1
1. MemoryCahe NetCore中的缓存和System.Runtime.Caching很相似,但是在功能上做了增强,缓存的key支持object类型;提供了泛型支持;可以读缓存和单个缓存
argument是javascript中函数的一个特殊参数,例如下文,利用argument访问函数参数,判断函数是否执行 复制代码 代码如下: <script
一不小心装了一个Redis服务,开了一个全网的默认端口,一开始以为这台服务器没有公网ip,结果发现之后悔之莫及啊 某天发现cpu load高的出奇,发现一个minerd进程 占了大量cpu,googl
今天写这个是为了 提醒自己 编程过程 不仅要有逻辑 思想 还有要规范 代码 这样可读性 1、PHP 编程规范与编码习惯最主要的有以下几点: 1 文件说明 2 funct
摘要:虚拟机安装时一般都采用最小化安装,默认没有lspci工具。一台测试虚拟网卡性能的虚拟机,需要lspci工具来查看网卡的类型。本文描述了在一个虚拟机中安装lspci工具的具体步骤。 由于要测试
1、修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统
目录 算术运算符 基本四则运算符 增量赋值运算符 自增/自减运算符 关系运算符 逻
如下所示: ? 1
MapperScannerConfigurer之sqlSessionFactory注入方式讲解 首先,Mybatis中的有一段配置非常方便,省去我们去写DaoImpl(Dao层实现类)的时间,这个
Linux的网络虚拟化是LXC项目中的一个子项目,LXC包括文件系统虚拟化,进程空间虚拟化,用户虚拟化,网络虚拟化,等等,这里使用LXC的网络虚拟化来模拟多个网络环境。 本文从基本的网络设备讲
? 1
我是一名优秀的程序员,十分优秀!