Appium Desktop记录器正在使用Xpath而不是ID

时间:2019-06-08 07:15:18

标签: appium appium-android nosuchelementexception appium-desktop

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

当我将Sendkeys动作记录到此输入字段时,Appium DeskTop在记录器窗口中显示XPath表达式用于定位Element而不是Id。这不是我所期望的,我期望可以使用ID来定位元素。

我试图在我的Testprogram中使用Id来定位元素,这就是在明确等待元素的可见性时给出的信息,请参见下面的C#代码:

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

然后出现以下异常:

OpenQA.Selenium.NoSuchElementException

在这里显示Appium桌面是哪种ID?

enter image description here

1 个答案:

答案 0 :(得分:0)

您需要使用resource-id。对于本机Android应用,通常将id属性用作 resource-id

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