Настольный рекордер Appium использует Xpath вместо Id - PullRequest
0 голосов
/ 08 июня 2019

Я изучаю свое родное приложение с помощью Appium DeskTop.Для поля ввода Appium Desktop показывает в окне «Поиск по селектору» идентификатор и выражение XPath.

Когда я записал действие Sendkeys в это поле ввода, Appium DeskTop показывает в окне регистратора, что выражение XPath используется для определения местоположения элемента вместо идентификатора.Это не то, что я ожидал, я ожидал, что Id используется для определения местоположения элемента.

Я пытался использовать Id в моей Testprogram для определения местоположения элемента, это дает, когда Явное ожидание Visbilty элементасм. код C # ниже:

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

Затем появляется следующее исключение:

OpenQA.Selenium.NoSuchElementException

Какой идентификатор представляет Appium Desktop здесь?

enter image description here

1 Ответ

0 голосов
/ 12 июня 2019

Вам необходимо использовать идентификатор ресурса. Для нативных приложений для Android обычно используется атрибут id: resource-id .

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