Appium:在Android屏幕上查找元素的正确方法

时间:2014-07-17 12:27:24

标签: c# android appium automated-tests selendroid

我想使用Appium为我的Android应用程序进行自动化测试。我正在用C#编写测试。我在搜索中做得很公平,但找不到解释如何在Android屏幕上访问元素的好文档。我知道有FindElementsByXPathFindElementByIdFindElementByName等方法,但我无法正确使用这些方法,因为我得到了例外。请阅读以下问题:

1)要使用FindElementsByXPath方法,我需要提前知道PageSource,只能使用driver.PageSource获取。有没有方便的方法在运行测试之前知道PageSource,以便我可以将XPath字符串作为参数传递给FindElementsByXPath

2)我在Android屏幕上EditTextView。在布局中,它声明如下:

<EditText
        android:id="@+id/password"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPassword"
        android:textSize="12dp"
        android:imeOptions="actionDone|flagNoExtractUi" 
        >

在编写测试时如何使用它的id(即'password')访问此EditTextView

3)是否可以以编程方式将文本设置为EditTextView?如果是的话,该怎么做?

感谢您花时间阅读整个问题。如果您在编写Appium测试时有任何资源解释如何在Android屏幕上访问和操作元素,请提供相同的信息。

3 个答案:

答案 0 :(得分:0)

对于Android应用,我使用UIAutomatorViewer查看应用上的所有元素。它是Android sdk的一部分,显示不同的标识符,包括ID,类名和文本。

答案 1 :(得分:0)

首先 - 您在测试中的应用程序是什么?它是一个Web应用程序还是本机应用程序?您是否在Androud设备上运行Web浏览器?

答案 2 :(得分:-1)

您可以在SDK文件夹的Tools文件夹中找到“uiautomatorviewer”,一个批处理文件。你必须使用那个。从那以后你可以捕获设备或模拟器的屏幕截图并找到ID。使用UI-automator,您可以获得Resource-id,class-name等。对于一个元素。