我通过桌面检查器捕获的元素在appium工作室上不起作用,当我通过appium独立服务器运行时工作正常?
-这背后有什么原因吗?
-如果我从任何地方捕获元素,无论任何服务器如何,它都可以使用,有什么解决方案吗?
-如何编写以下代码的相对路径?
/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/androidx.drawerlayout.widget.DrawerLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout[1]/android.view.ViewGroup/androidx.recyclerview.widget.RecyclerView/android.view.ViewGroup[1]
我正在使用appium自动化应用程序,因此通过桌面检查器捕获了一些元素。 当我运行代码时,它工作正常。 但是在 xpath 上,我使用了 appium studio,因为在桌面检查器中,它是一个绝对的 xpath,而且很长。但是当我在Appium Studio上执行此脚本失败时,但是它在Appium独立服务器上运行良好,当我通过Appium Studio找到该元素并尝试在Appium上运行时,也发生了同样的事情。
-捕获的元素无法在两个服务器上运行?
//appium studio
driver.findElement(By.xpath("//*[@id='action_contacts']")).click();--
id -action_contacts
resource id - com.appName.chatapp:id/action_contacts
class - android.widget.FrameLayout
桌面检查器
driver.findElement(By.id("Contacts")).click();
accessibility id Contacts
id com.appName.chatapp:id/action_contacts
xpath //android.widget.FrameLayout[@content-desc="Contacts"]
使用给定的搜索参数无法在页面上找到元素。
正确的定位器是:
- 编号:
driver.findElement(By.id("action_contacts")).click();
- XPath:
driver.findElement(By.xpath("//*[contains(@id,'action_contacts')]")).click();
,您需要使用contains()
函数才能对部分文本进行匹配。