关灯
开启左侧

[我要爆料] 了解:技术分享 | app自动化测试(Android)--App 控件交互

[复制链接]
xinshangren 发表于 2022-6-20 11:56:26 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
 
  原标题:技术分享 | app自动化测试(Android)--App 控件交互薅羊毛https://www.aznfz.com/冰狐智能辅助一站式app自动化解决方案,支持SaaS和微服务,不需编程通过搭积木和参数配置即可快速实现各种app自动化操作,比如:自动运营店铺,自动签到,自动薅羊毛,自动回复,自动化测试,抓取app数据,微信营销,网络推广,抢红包等功能!
  本文节选自霍格沃兹测试开发学社内部教材   Appium 提供了大量的 API 去操作页面及页面上的节点,比如点击、输入、滑动等。   常用操作   点击操作   通常获取到元素之后,可以调用 click() 方法来实现对这个元素的点击操作。示例代码如下:   python 版本   driver.find_element_by_id("home_search").click()   Java 版本   driver.findElementById("home_search").click();   输入操作   输入操作示例代码如下:   python 版本   self.driver.find_element_by_id("search_input_text").send_keys("阿里巴巴")   Java 版本   driver.findElementById("search_input_text").sendKeys("阿里巴巴");   效果展示:   获取元素属性   通过获取到的元素属性信息,可以进行页面数据的验证(断言),或者用于分支判断。   元素有很多属性信息,无论是使用 uiautomatorviewer 还是使用 Appium Inspector,元素的属性信息一般都会展示在页面的右下方。   如下图是 Appium Inspector 的元素定位页面:   可以使用获取元素的属性的方法来获取这些属性信息。然后通过获取到的元素属性值进行断言,也可以获取到复选框是否被选中的状态,或者获取某个元素是否可用等信息。   获取 TEXT 属性   返回元素的 text 的属性值,用法如下:   Python 版本   self.driver.find_element_by_xpath(   '//*[@resource-id="com.xueqiu.android'   ).get_attribute('text')   Java 版本   driver.findElementByXPath\   "http://*[@resource-id="com.xueqiu.android"]").\   getAttribute("text");   获取 CLASS 属性   返回元素的 class 的属性值,用法如下:   Python 版本   self.driver.find_element_by_xpath(   '//*[@resource-id="com.xueqiu.android"]'   ).get_attribute('class')   Java 版本   driver.findElementByXPath("\   //*[@resource-id="com.xueqiu.android"]")\   .getAttribute("class");   获取 RESOURCE-ID 属性   返回 resource-id 的属性值(API≥18 支持),用法如下:   Python 版本   self.driver.find_element_by_xpath(   '//*[@resource-id="com.xueqiu.android"]'   ).get_attribute('resource-id')   Java 版本   driver.findElementByXPath\   ("http://*[@resource-id="com.xueqiu.android"]")\   .getAttribute("resource-id");   获取 CONTENT-DESC 属性   返回元素的 content-desc 的属性值,用法如下:   Python 版本   self.driver.find_element_by_xpath(   '//*[@resource-id="com.xueqiu.android'   ).get_attribute('content-desc')   Java 版本   driver.findElementByXPath\   ("http://*[@resource-id="com.xueqiu.android"]")\   .getAttribute("content-desc");   获取元素的其它属性   也可以获取到元素的一些其它的属性,比如这个元素是否可见,是否被选中,是否可用等,下面介绍这些属性值的获取:   python 版本   get_attribute('clickable') # 是否可点击   get_attribute('checked') # 是否被选中   get_attribute('displayed') # 是否显示   get_attribute('enabled') # 是否可用   Java 版本   getAttribute("clickable"); // 是否可点击   getAttribute("checked"); //是否被选中   getAttribute("displayed"); // 是否显示   getAttribute("enabled"); // 是否可用   获取页面的XML结构   获取页面的 XML 结构,大部分情况是用于页面数据的验证。另外也可以通过分析页面的结构,辅助定位问题。   通过 driver.page_source 可以获取页面的 XML 结构。与 Selenium 输出的 HTML 格式不一样,Appium 的 page_source 是 XML 格式。   示例代码如下:   PYTHON 版本   from appium import webdriver   def test_search(self):   # 点击搜索   self.driver.find_element_by_id(   "com.xueqiu.android:id/tv_search").click()   # 输入内容“alibaba”   self.driver.find_element_by_id(   "com.xueqiu.android:id/search_input_text").send_keys("alibaba")   # 打印输出 class 属性   print(self.driver.find_element_by_xpath(   '//*[@resource-id="com.xueqiu.android')   .get_attribute('class'))   # 打印输出页面源码   print(self.driver.page_source)   JAVA 版本   import io.appium.java_client.android.AndroidDriver;   @Test   public void searchTest(){   // 点击搜索   driver.findElement(By.id("com.xueqiu.android:id/tv_search")).click();   // 输入内容“alibaba”   driver.findElement(By.id("com.xueqiu.android:id/search_input_text"))\   .sendKeys("alibaba");   // 打印输出 class 属性   System.out.println(driver.findElementByXPath(\   "http://*[@resource-id="com.xueqiu.android"]").getAttribute("class"));   // 打印输出页面源码   System.out.println(driver.getPageSource());   }   上面的代码创建了一个测试方法,先定位到搜索框,向搜索框中输入内容,通过获取属性方法获取到搜索结果的 class 属性,最后获取页面的布局源码。   > 你好呀,喜欢这篇文章的话记得点个“赞”哦!大家的支持很重要~(^▽^) PS:有问题可以联系我们哦~v ceshiren001   https://qrcode.ceba.ceshiren.com/link?name=article&project_id=qrcode&from=souhu×tamp=1655167932&author=QY返回搜狐,查看更多   责任编辑: 2022/6/20
 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


0关注

0粉丝

149501帖子

热门图文
排行榜

关注我们:微信订阅号

官方微信

APP下载

全国服务Q Q:

956130084

中国·湖北

Email:956130084@qq.com

Copyright   ©2015-2022  站长技术交流论坛|互联网技术交流平台Powered by©Discuz!技术支持:得知网络  

鄂公网安备 42018502006730号

  ( 鄂ICP备15006301号-5 )