【发布时间】:2014-08-01 17:46:35
【问题描述】:
我目前正在使用 Appium 和 Selenium 自动化一个 android 应用程序,并且在通过 ID 定位元素时遇到了一些问题。我想使用 XPATH 但不知道如何获取 android UI 元素的 XPATH。有谁知道如何确定元素的 XPATH 或知道可以快速完成这项工作的工具?谢谢!
【问题讨论】:
标签: android xpath selenium-webdriver automation appium
我目前正在使用 Appium 和 Selenium 自动化一个 android 应用程序,并且在通过 ID 定位元素时遇到了一些问题。我想使用 XPATH 但不知道如何获取 android UI 元素的 XPATH。有谁知道如何确定元素的 XPATH 或知道可以快速完成这项工作的工具?谢谢!
【问题讨论】:
标签: android xpath selenium-webdriver automation appium
您可以使用 android sdk 工具 - uiautomatorviewer(https://developer.android.com/tools/testing/testing_ui.html),它类似于 appium 检查器,但对我来说效果更好。
【讨论】:
com.android2.calculator3:id/digit8
对于具有 id 的元素
driver.findElement(By.id("com.example.testapp:id/txtLogin"))
对于具有类的元素
android.widget.EditText[@index=0]
语法
{ClassName}[@{anyAttributeName}={valueOfAttribute}]
代码
driver.findElements(By.className("android.widget.EditText"));//will return ARRAY
【讨论】:
有一种方法可以找出 xpath。首先从应用程序中获取页面源。这将是 xml 格式。然后将源代码复制到 xpath 测试器网站,例如 xpath tester。然后创建 xpath 并检查它是否有效。这是假设您已经知道如何创建 xpath。
【讨论】:
Appium's client comes with an Inspector tool! 这将告诉您您感兴趣的任何元素的 xpath
【讨论】:
尝试查看源代码:
https://android.stackexchange.com/questions/5039/how-do-i-view-source-in-the-android-browser
然后从那里找出 xpath 变得更容易。
【讨论】:
您可以使用 Android SDK 中的 UIAutomatorviewer 实用程序来获取所需的定位器。转到您的 Android SDK 安装的“工具”文件夹并触发 uiautomatorviewer.bat 文件。从那里,您可以找到应用元素。
访问此链接,了解如何使用它。
【讨论】:
在您的手机中启用开发者选项并连接您的手机并为 android 设备调用 chrome 检查器(类型 -- about:inspect in chrome )您的设备将被显示。
只需点击检查按钮,手机屏幕就会显示出来。 为您提供了应用程序和完整的 DOM 结构。从中创建您自己的 XPATH。
【讨论】:
你可以这样使用它:
WebElement btn_yes = driver.findElement(By.xpath("//android.widget.Button[@text='Yes']"));
【讨论】: