appium---第二个脚本,定位页面元素
工具使用:
1、android-sdk的自带工具---uiautomator工具
2、使用find_element_by_id寻找元素位置
from appium import webdriver;
from appium import version;
#from selenium import webdriver;
import time;
#目前最新更新 #from appium import webDriver
#,
pack_info={
'platformName':'android',
'deviceName':'215a343c0804',
'platformVersion':'7.1.2',
'appPackage':'包名',
'appActivity':'启动Activity' } drive=webdriver.Remote('http://127.0.0.1:4723/wd/hub',pack_info); #drive=webdriver.Remote('http://127.0.0.1:4723/wd/hub',pack_info); # #休眠5s
time.sleep();
#点击对应的元素
drive.find_element_by_id('包名:id/iv_download_img').click()----加这一句就行
print('执行成功')
产生了一个问题:
①、运行后,appium可以正常运行,并开启APP,但是无法进行点击事件,事实上,并没有任何报错,纳闷中
解决方式尝试1:开发者模式中,打开允许模拟点击,完美解决
2、扩展-使用其他的定位元素的办法
①、在uiautomator中获取元素id(常用):.find_element_by_id('包名:id/iv_download_img').click()---->在uiautomator中的resource-id中直接复制即可
②、使用使用xpath获取元素:
1)如果页面中text是唯一的,那么就通过text文本获取(格式://*[@text='掃一掃',必须要有斜杠和一个※号)(很少用):find_element_by_xpath("//*[@text='掃一掃']").click();------->根据tex寻找,也是在uiautomator中的元素text中直接复制即可
2)同上,也可以用uiautomator中的content-desc文本获取,正常情况下,它的内容和text是一样的,很多时候,它是空的,用法也是和text一样find_element_by_xpath("//*[@content-desc='掃一掃']").click();
2)如果页面中class是唯一的,那么就通过class获取(格式://classname,必须要有两个斜杠)(很少用):drive.find_element_by_xpath('//android.widget.TextView').click();----->这个运行无结果,无报错,因为页面中这个class不是唯一的,所以不知道应该要取哪一个。
3)contains模糊匹配(类似模糊匹配,这个通常用于要定位一组的元素,而不是单个元素时,效率尤其突出)
4)层级定位--父定子位(很有用)
参考
https://www.cnblogs.com/syw20170419/p/8192629.html
appium---第二个脚本,定位页面元素的更多相关文章
- 关于appium操作真机打开app之后无法定位页面元素的问题的解决办法
appium操作真机打开app后无法定位页面元素:例如微信或者支付宝支付时,手机的安全控件会对支付环境进行保护,会断掉当前appium与真机的链接,导致连接失败,无法定位到页面元素,在做ui自动化之前 ...
- 定位页面元素之xpath详解以及定位不到测试元素的常见问题
一.定位元素的方法 id:首选的识别属性,W3C标准推荐为页面每一个元素设置一个独一无二的ID属性, 如果没有且很难找到唯一属性,解决方法:(1)找开发把id或者name加上.如果不行,解决思路可以是 ...
- 使用CSS选择器定位页面元素
摘录:http://blog.csdn.net/defectfinder/article/details/51734690 CSS选择器也是一个非常好用的定位元素的方法,甚至比Xpath强大.在自动化 ...
- selenium第三课(selenium八种定位页面元素方法)
selenium webdriver进行元素定位时,通过seleniumAPI官方介绍,获取页面元素的方式一共有以下八种方式,现按照常用→不常用的顺序分别介绍一下. 官方api地址:https://s ...
- selenium定位页面元素的一件趣事
PS:本博客selenium分类不会记载selenium打开浏览器,定位元素,操作页面元素,切换到iframe,处理alter.confirm和prompt对话框这些在网上随处可见的信息:本博客此分类 ...
- Selenium 定位页面元素 以及总结页面常见的元素 以及总结用户常见的操作
1. Selenium常见的定位页面元素 2.页面常见的元素 3. 用户常见的操作 1. Selenium常见的定位页面元素 driver.findElement(By.id());driver.fi ...
- webdriver定位页面元素时使用set_page_load_time()和JavaScript停止页面加载
webdriver定位页面元素时使用set_page_load_time()和JavaScript停止页面加载 原文:https://my.oschina.net/u/2344787/blog/400 ...
- selenium webdriver学习(四)------------定位页面元素(转)
selenium webdriver学习(四)------------定位页面元素 博客分类: Selenium-webdriver seleniumwebdriver定位页面元素findElemen ...
- Python+Selenium自动化-定位页面元素的八种方法
Python+Selenium自动化-定位页面元素的八种方法 本篇文字主要学习selenium定位页面元素的集中方法,以百度首页为例子. 0.元素定位方法主要有: id定位:find_elemen ...
- By.Xpath快速定位页面元素常用方法
先看一看xpath的语法 我们将在下面的例子中使用这个 XML 文档. <?xml version="1.0" encoding="ISO-8859-1" ...
随机推荐
- 修改JDK版本配置
我使用的maven是3.0.5版本的,在创建项目的时候,默认使用的jdk为1.5版本 在项目的pom.xml中添加如下配置可修改使用的jdk版本. <properties> <!-- ...
- 树·二叉查找树ADT(二叉搜索树/排序树)
1.定义 对于每个节点X,它的左子树中所有的项的值小于X的值,右子树所有项的值大于X的值. 如图:任意一个节点,都满足定义,其左子树的所有值小于它,右子树的所有值大于它. 2.平均深度 在大O模型中, ...
- winform的水印TextBox
public partial class WaterTextBox : TextBox { private readonly Label lblwaterText = new Label(); pub ...
- 机器学习之线性回归---logistic回归---softmax回归
在本节中,我们介绍Softmax回归模型,该模型是logistic回归模型在多分类问题上的推广,在多分类问题中,类标签 可以取两个以上的值. Softmax回归模型对于诸如MNIST手写数字分类等问题 ...
- Confluence 6 使用 Apache 和 mod_proxy 的基本配置
在这些示例中,我们使用下面的信息: http://www.example.com/confluence - 你计划使用的 URL http://example:8090/ - Confluence 当 ...
- gnuradio 使用eclipse 编辑器记录
第1步 - 首先安装eclipse 先去官网下载,然后解压 --->下载版本是C++/C 版---->解压--->打开--->help->eclipse marketp ...
- LeetCode(78):子集
Medium! 题目描述: 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3] 输出: [ [3 ...
- WPA2-PSK无线密码破解
无线网络WIFI(wireless Fidelity )正确发音 /wai fai/ 是一个建立在IEEE 802.11标准的无线局域网,目前主流的无线上网模式主要有两种分别是 GRPS(手机无线上网 ...
- Vue-CLI 3.x 设置反向代理
最近在项目中使用了Vue CLI 3.0版本,项目中需要设置反向代理解决跨域问题,下面记录一下设置过程. 新建配置文件 (vue-cli3.x 官网的配置文档 https://cli.vuejs.or ...
- MySQL数据库权限分类
一.权限表 mysql数据库中的3个权限表:user .db. host 权限表的存取过程是: 1)先从user表中的host. user. password这3个字段中判断连接的IP.用户名.密码是 ...