软件测试 | App控件交互如何操作

在软件测试中,测试人员可以用Appium提供的大量的API去操作App页面及App页面上的节点,如点击、输入、滑动等操作。

1.常用的测试操作

(1)点击操作

在软件测试中,我们通常先获取到元素,然后通过测试脚本调用click()方法来实现对这个元素的点击操作。示例diamante如下(Python版和Java版)。

Python版本

driver.find_element_by_id("home_search").click()

Java版本

driver.findElementById("home_search").click();

(2)输入操作

测试使用的输入操作示例代码如下(Python版和Java版)。

Python版本

self.driver.find_element_by__id("search_input_text").send_keys("阿里巴巴")

Java版本

driver.findElementById("search_input_text").sendKeys("阿里巴巴");

(3)获取元素属性

我们进行软件测试时,通过获取到的元素属性信息,可以进行页面数据的验证(断言),或者用于分支判断。

元素有很多属性信心,无论是使用UiAutomator还是使用Appium Inspector,获取到的元素属性信息一般都会展示在页面的右下方。

我们在测试中可以使用获取App页面元素属性的方法来货物一些元素的属性信息。然后通过获取到的元素属性值进行断言,这样也可以获取到复选框是否被选中,或者获取到页面中某个元素是否可用等信息。

1)获取元素的text属性

获取元素的text属性值的代码如下(python版和Java版)。

Python版本

self.driver.find_element_by_xpath(
   '//*[@resource-id="com.xueqiu.android "]
   ').get_attribute('text')

Java版本

driver.findElementByXPath\
    "//*[@resource-id=\"com.xueqiu.android\"]".\
    getAttribute("text")

2)获取元素的class属性

获取元素的class属性的代码如下(Python版和Java版)。

Python版本

self.driver.find_element_by_xpath(
 '//*[@resource-id="com.xueqiu.android"]'
). get_attribute('class')

Java版

driver.findElementByXPath("\
 //*[@resourse-id=\"com.xueqiu.android\"]"\
 .getAttribute(class));

3)获取resource-id属性

获取元素的resource-id属性(API≥18支持)的代码如下(Python版和Java版)。

Python版本

self.driver.find_element_by_xpath(
 '//*[@resoutce-id="com.xueqiu.android"]'
 ).get_attribute('resource-id')

Java版本

driver.findElementByXPath\
   ("//*[@resource-id\"com.xueqiu.android\"]"\
   .getAttribute("resource-id"));

4)获取content-desc属性

获取元素 的content-desc属性的代码如下(Python版和Java版)。

Python版本

self.driver.find_element_by_xpath(
'//*[@resource-id=com.xueqiu.android]'
).get_attribute('content-desc')

Java版本

driver.findElementByXPath\
  ("//*[@resource-id=\"com.xueqiu.android\"]")\
  .getAttribute("content-desc");

5)获取元素的其他属性

在测试中,我们也可以获取App页面元素的一些其他属性,通过元素的属性判断元素的状态,如某个元素是否可见、是否被选中、是否可用等,下面会介绍获取其他属性的演示代码(Python版和Java版)。

Python版

get_attribute('clickable')  #是否可点击
get_attribute('checked')    #是否被选中
get_attribute('displayed')  #是否显示
get_attribute('enabled')  #是否可用

Java版本

getAttribute('clickable');  #是否可点击
getAttribute('checked');    #是否被选中
getAttribute('displayed');  #是否显示
getAttribute('enabled');    #是否可用

2.获取页面的XML结构

在测试中,我们获取页面的XML结构目的是用于页面数据的验证。另外,也可以通过分析页面的XML结构,辅助解决页面元素的定位问题。

通过使用driver.page_source可用获取页面的XML结构。

注:用Selenium获取的页面结构是HTML格式,Appium使用page_sourse方法获取的页面结构是XML格式。

示例代码如下(Python版和Java版)。

(1)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_sourse)
...

(2)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.printIn(driver.findElementByXPath(\
     "//*[@resource-id=\"com.xueqiu.android\"]").getAttribute("class"));
   //打印输出页面源代码
   System.out.printIn(driver.getPageSource());
}
...

上面的代码创建了一个测试方法,这个方法定位到页面的搜索框,然后向搜索框中输入内容。以Python代码为例,通过方法“get_attribute('class')"获取到 “搜索框” 这个元素的class属性,最后通过 “ page_source”获取页面的布局代码。

最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

全套资料获取方式:点击下方小卡片自行领取即可

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值