Как исправить «NoElementException» в Appium & C #, для которого я пробовал различные решения? - PullRequest
4 голосов
/ 03 июля 2019

Я новичок в C #, но имею хороший опыт работы с Appium. Для рассматриваемого экрана есть поле для редактирования «Пожалуйста, введите свой код приложения». Рабочий стол Appium легко идентифицирует элемент по id. После идентификации я пытаюсь нажать и ввести значение для кода приложения. Удивительно, но в Java этот элемент легко идентифицируется как «Id». enter image description here

Я пытался использовать FindElementById, FindElementByAccessibilityId и FindElementByXPath, но ни один из них не работает. Я также пытался с явным ожиданием.

  IWebElement Appcode = driver.FindElementByAccessibilityId("com.abc.dbanking:id/appcode_tie");

или

     IWebElement Appcode = driver.FindElementById("com.abc.dbanking:id/appcode_tie");

или

IWebElement Appcode = driver.FindElementByXPath("//android.widget.EditText(@resource-id = 'com.abc.dbanking:id/appcode_tie'));

или

  WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(45));
        IWebElement Appcode = wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementToBeClickable(By.Id("com.abc.dbanking:id/appcode_tie")));

Но каждый раз, когда я получаю 'NoSuchElementException', и драйвер не может найти этот элемент на странице.

1 Ответ

2 голосов
/ 09 июля 2019

try IWebElement element = driver.FindElementById ("appcode_tie");или IWebElement element = driver.FindElementByXPath ("// * [содержит (@ идентификатор ресурса, 'appcode_tie')]");

...