Appium:Android资源ID:转换为他们的selenium集成中的内容?

Mik*_*ick 5 android selenium-webdriver appium

所以我举例说:

wd.findElement.By(name("searchBttn"));
Run Code Online (Sandbox Code Playgroud)

ui xml屏幕上的资源ID是 com.aut.android:id/searchBttn

和Appium找不到该项目.我试过ID和名字.这里有什么别的东西我可以尝试是否有一条线路相关列表的直线,我错过了?

Kio*_*tch 7

您可以在Appium中找到资源ID的Android项目,但您必须指定整个软件包名称以及资源ID:

wd.findElement.By(id("com.aut.android:id/searchBttn"));
Run Code Online (Sandbox Code Playgroud)


qef*_*zec 1

至少名字对我有用。我正在尝试了解它如何用于 ID,但您可以查看以下内容。

示例:如果按钮文本设置为“testbtn”,那么您可以使用以下命令从 Appium 访问它:

driver.findElement(By.name("testbtn")).click();
Run Code Online (Sandbox Code Playgroud)

这对我有用,试试吧。

编辑:正如一位 Appium 开发人员所说,目前似乎无法在 Android 上通过 ID 访问元素。

EDIT2:此功能现已实现!正如我发现的,您现在可以使用 selendroid(它似乎是 Appium 的子部分)通过 ID 访问 Android 中的元素。

在您的测试类中,您需要capabilities.setCapability("device", "selendroid");在设置时指定而不是capabilities.setCapability(CapabilityType.BROWSER_NAME, "Android");

现在您只需访问一个按钮即可

driver.findElement(By.id("testbtn")).click();
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到 Selendroid 的官方文档