基于C#的Appium自动化测试框架(Ⅱ):Android元素定位

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于C#的Appium自动化测试框架(Ⅱ):Android元素定位相关的知识,希望对你有一定的参考价值。

 

我们知道,Appium的原理上是通过RemoteWebDriver提供了元素定位功能,再根据定位后的元素进行操作,比如:

protected static RemoteWebDriver CalculatorSession;
CalculatorSession.FindElementByName("One").Click();

工作的重点就是定位到对应的元素,Appiuim提供了很多用来定位元素的方法,具体包括:

FindElement(By by);
FindElementByClassName(string className);
FindElementByCssSelector(string cssSelector);
FindElementById(string id);
FindElementByLinkText(string linkText);
FindElementByName(string name);
FindElementByPartialLinkText(string partialLinkText);
FindElementByTagName(string tagName);
FindElementByXPath(string xpath);

那么我们接下来的工作,就是找到这些适用于这些方法的元素了。

android系统下的元素可以通过uiautomatorviewer进行定位,Uiautomatorviewer是Android SDK中自带的元素定位工具,在Android_SDK\\tools\\bin路径下直接打开该文件即可。

启动Android模拟器或链接Android真机,点击左上角的手机按钮,即可捕捉APP当前所处的界面,点击左上角的任意一个手机图标都可以,区别只是后者对层次进行了压缩,这种情况对于大量使用数组或者泛型填充的APP更加有优势,不会定位到一堆空元素或者名字ID都相同的元素出来:

技术分享

比如说,我们定位这个分享按钮,我们可以看到这个按钮的resource-id(用ID定位)、class(ClassName定位)以及Text(用LinkText定位),我们在定位的时候,优先按照唯一的元素属性进行定位,这里我们选用文本进行定位,点击这个元素的代码那么可以如下:

     public void TestCase1()
        {
            CalculatorSession.FindElementByLinkText("分享").Click();
        }

 

以上是关于基于C#的Appium自动化测试框架(Ⅱ):Android元素定位的主要内容,如果未能解决你的问题,请参考以下文章

基于appium的app自动化测试框架

Appium基于Python APP自动化测试框架 -- PO

基于APPIUM测试微信公众号的UI自动化测试框架(结合Allure2测试报告框架)

Appium自动测试框架常用API

Appium基于python unittest自动化测试并生成html测试报告

基于Appium的APP自动化测试基础--美团APP的实例