【问题标题】:Appium Desktop recorder is using Xpath instead of IdAppium 桌面记录器使用 Xpath 而不是 Id
【发布时间】:2019-10-23 13:14:20
【问题描述】:

我正在使用 Appium DeskTop 探索我的本机应用程序。对于输入字段,Appium Desktop 在“按选择器窗口查找”中显示了一个 Id 和一个 XPath 表达式。

当我向此输入字段录制 Sendkeys 操作时,Appium DeskTop 在录制器窗口中显示 XPath 表达式用于定位元素而不是 Id。这不是我所期望的,我期望 Id 用于定位元素。

我尝试在我的测试程序中使用 Id 来定位元素,这是给定的,当显式等待元素的可见性时,请参阅下面的 C# 代码:

wait.Until(ExpectedConditions.ElementIsVisible(By.Id("companyname")));
IWebElement bedrijf = (IWebElement)driver.FindElementById("companyname");
bedrijf.Click();
bedrijf.SendKeys("IBM");

然后出现如下异常:

OpenQA.Selenium.NoSuchElementException

在这里展示 Appium Desktop 是什么样的 Id?

【问题讨论】:

  • 您能否为您尝试定位的元素添加带有 UI Automator 视图的屏幕截图?
  • 我不确定我是否明白你的意思。左侧面板显示应用的 UI?
  • 是的,使用 UI 并突出显示您要对其执行操作的元素。另外请在此处添加您的代码。
  • 我用你要求的那个替换了打印屏幕。
  • 我添加了代码。

标签: appium appium-android nosuchelementexception appium-desktop


【解决方案1】:

您需要使用资源 ID。对于原生 android 应用,通常使用 id 属性作为 resource-id

IWebElement bedrijf = (IWebElement)driver.findElement(By.xpath("//android.widget.EditText[@resource-id='companyname']"))

【讨论】:

  • 我的问题是关于 Appium Desktop Selected Element 和 Appium Desktop Recorder 窗格的行为。
猜你喜欢
  • 2010-10-03
  • 1970-01-01
  • 2020-10-21
  • 2013-09-30
  • 2021-10-18
  • 1970-01-01
  • 2011-01-10
  • 2013-05-23
  • 1970-01-01
相关资源
最近更新 更多