0

当我通过 appium 独立服务器运行时,我通过桌面检查器捕获的元素不能在 appium studio 上工作并且工作正常?

-这背后有什么原因吗?

- 如果我从任何服务器都可以工作的任何地方捕获元素,是否有任何解决方案?

- 如何编写下面代码的相对xpath?

/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工作室

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"]

使用给定的搜索参数无法在页面上找到元素。

4

1 回答 1

0

正确的定位器是:

  1. 身份证driver.findElement(By.id("action_contacts")).click();
  2. XPath : driver.findElement(By.xpath("//*[contains(@id,'action_contacts')]")).click();,您需要使用contains()函数来匹配部分文本。
于 2019-08-30T09:41:59.113 回答