在appium工作室中找到的元素不适用于appium独立服务器,反之亦然



我通过桌面检查器捕获的元素在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"]

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

正确的定位器是:

  1. 编号:driver.findElement(By.id("action_contacts")).click();
  2. XPath:driver.findElement(By.xpath("//*[contains(@id,'action_contacts')]")).click();,您需要使用contains()函数才能对部分文本进行匹配。

最新更新