技术分享 | app自动化测试(Android)–App 控件交互

原文链接

常用操作点击操作

一般在获取到元素后,可以调用click()方法实现对该元素的点击操作。示例代码如下:

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

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

输入操作

输入操作示例代码如下:

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

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

效果展示:

获取元素属性

通过获取的元素属性信息,可以对页面数据进行验证(断言),或者用于分支判断。

元素有很多属性信息。无论是 using 还是 using ,元素的属性信息一般都显示在页面的右下方。

下图是元素定位页面:

可以使用获取元素属性的方法来获取这些属性信息。然后通过获取的元素属性值进行断言,还可以获取复选框是否被选中的状态,或者获取元素是否可用等信息。

获取TEXT属性

返回元素的text属性的值,用法如下:

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

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

获取 CLASS 属性

返回元素的类的属性值,用法如下:

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

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

获取 ID 属性

返回-id的属性值(API≥18支持),用法如下:

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

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

获取 -DESC 属性

返回元素的-desc属性值,用法如下:

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

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

获取元素的其他属性

还可以获取元素的一些其他属性,比如元素是否可见、是否被选中、是否可用等,下面分别介绍这些属性值的获取:

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

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

获取页面的XML结构

获取页面的XML结构,多用于页面数据校验。此外,您还可以分析页面的结构,以帮助定位问题。

页面的XML结构可以通过.与输出 HTML 格式不同,输出是 XML 格式。

示例代码如下:

版本

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

以上代码创建了一个测试方法,首先定位搜索框,在搜索框中输入内容,通过get属性方法获取搜索结果的类属性,最后得到页面的布局源码。

⬇️您好,如果您喜欢这篇文章,请点击“Like”!您的支持很重要~(▽) PS:有任何问题请联系我们~v

>>更多技术文章分享和免费材料接收

© 版权声明
THE END
喜欢就支持一下吧
点赞247赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容