工具使用:

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---第二个脚本,定位页面元素的更多相关文章

  1. 关于appium操作真机打开app之后无法定位页面元素的问题的解决办法

    appium操作真机打开app后无法定位页面元素:例如微信或者支付宝支付时,手机的安全控件会对支付环境进行保护,会断掉当前appium与真机的链接,导致连接失败,无法定位到页面元素,在做ui自动化之前 ...

  2. 定位页面元素之xpath详解以及定位不到测试元素的常见问题

    一.定位元素的方法 id:首选的识别属性,W3C标准推荐为页面每一个元素设置一个独一无二的ID属性, 如果没有且很难找到唯一属性,解决方法:(1)找开发把id或者name加上.如果不行,解决思路可以是 ...

  3. 使用CSS选择器定位页面元素

    摘录:http://blog.csdn.net/defectfinder/article/details/51734690 CSS选择器也是一个非常好用的定位元素的方法,甚至比Xpath强大.在自动化 ...

  4. selenium第三课(selenium八种定位页面元素方法)

    selenium webdriver进行元素定位时,通过seleniumAPI官方介绍,获取页面元素的方式一共有以下八种方式,现按照常用→不常用的顺序分别介绍一下. 官方api地址:https://s ...

  5. selenium定位页面元素的一件趣事

    PS:本博客selenium分类不会记载selenium打开浏览器,定位元素,操作页面元素,切换到iframe,处理alter.confirm和prompt对话框这些在网上随处可见的信息:本博客此分类 ...

  6. Selenium 定位页面元素 以及总结页面常见的元素 以及总结用户常见的操作

    1. Selenium常见的定位页面元素 2.页面常见的元素 3. 用户常见的操作 1. Selenium常见的定位页面元素 driver.findElement(By.id());driver.fi ...

  7. webdriver定位页面元素时使用set_page_load_time()和JavaScript停止页面加载

    webdriver定位页面元素时使用set_page_load_time()和JavaScript停止页面加载 原文:https://my.oschina.net/u/2344787/blog/400 ...

  8. selenium webdriver学习(四)------------定位页面元素(转)

    selenium webdriver学习(四)------------定位页面元素 博客分类: Selenium-webdriver seleniumwebdriver定位页面元素findElemen ...

  9. Python+Selenium自动化-定位页面元素的八种方法

    Python+Selenium自动化-定位页面元素的八种方法   本篇文字主要学习selenium定位页面元素的集中方法,以百度首页为例子. 0.元素定位方法主要有: id定位:find_elemen ...

  10. By.Xpath快速定位页面元素常用方法

    先看一看xpath的语法 我们将在下面的例子中使用这个 XML 文档. <?xml version="1.0" encoding="ISO-8859-1" ...

随机推荐

  1. [转]PhpStorm快捷键大全

    1 前言 PhPStorm 是 JetBrains 公司开发的一款商业的 PHP 集成开发工具,PhpStorm可随时帮助用户对其编码进行调整,运行单元测试或者提供可视化debug功能.Phpstro ...

  2. 转:如何在Vue项目中使用vw实现移动端适配

    https://www.w3cplus.com/mobile/vw-layout-in-vue.html 有关于移动端的适配布局一直以来都是众说纷纭,对应的解决方案也是有很多种.在<使用Flex ...

  3. Oracle 数据库架构

    Oracle 数据库架构 查看数据库在linux系统的安装目录路径情况: [root@localhost ~]# cd /u01/app/oracle/oradata/orcl/ [root@loca ...

  4. 【shell】两种字符串提取场景的实现

    shell虽然比batch顺眼点儿,但还是老话,入门容易,精通难. 1.场景一是这样的,现有字符串的内容 name: tiger; age:18; location:china; 需求:提取每个属性的 ...

  5. elementui上传图片到七牛云服务器

    注册七牛云 首先,注册七牛云,并且完成实名认证,完成后会在个人中心->秘钥管理中看到两个秘钥AccessKey/SecretKey 创建存储空间(必须要实名认证) 生成上传凭证 为了实现上传,我 ...

  6. gnuradio 使用eclipse 编辑器记录

    第1步 - 首先安装eclipse 先去官网下载,然后解压  --->下载版本是C++/C 版---->解压--->打开--->help->eclipse marketp ...

  7. 正则化 L1 L2

    机器学习中几乎都可以看到损失函数后面会添加一个额外项,常用的额外项一般有两种,一般英文称作ℓ1ℓ1-norm和ℓ2ℓ2-norm,中文称作L1正则化和L2正则化,或者L1范数和L2范数. L1正则化和 ...

  8. Practical Web Penettation Testing (the first one Mutillidae 大黄蜂 之二)

    1.how  to use dpkg cmmand first it can be used for list all software , dpkg -l  (由于kali linux 没有启动所以 ...

  9. Nginx详解二十五:Nginx架构篇之Nginx常见的问题

    Nginx常见的问题 1.相同server_name多个虚拟主机优先级访问,是按读取文件的优先级来排序 在/opt/app/下准备3个code文件夹,下面放入3个html文件,里面的内容分别是code ...

  10. du命令

    选项 例1:显示单个文件的大小(默认单位K) [root@zabbix alertscripts]# du -h sendim.py 4.0k sendim.py 例2:显示某个目录的总大小 例3:输 ...