Не удается найти какой-либо элемент в appium для моего мобильного приложения

#selenium #appium

#selenium #appium

Вопрос:

введите описание изображения здесьвведите описание изображения здесьЯ не могу найти элементы, используя какие-либо локаторы, использующие appium в моем мобильном приложении, пожалуйста, проверьте прикрепленный скриншот и мой код ниже

 driver.findElementById("serviceUrl").sendKeys("ABC");    
driver.findElementByClassName("android.widget.Button").click();
  

Скриншот

Ответ сервера Appium

[debug] [AndroidBootstrap] [ЖУРНАЛ НАЧАЛЬНОЙ ЗАГРУЗКИ] [debug] Получены данные от клиента: {«cmd»: «action», «action»: «find», «params»:{«strategy»: «xpath», «selector»:»//[@class=’android.widget.EditText’]», «context»:»»», «multiple»: false}} [debug] [AndroidBootstrap] [ЖУРНАЛ НАЧАЛЬНОЙ ЗАГРУЗКИ] [debug] Получена команда типа ACTION [debug] [AndroidBootstrap] [ЖУРНАЛ НАЧАЛЬНОЙ ЗАГРУЗКИ] [debug] Получено командное действие: find [debug] [AndroidBootstrap] [ЖУРНАЛ НАЧАЛЬНОЙ ЗАГРУЗКИ] [debug] Finding ‘//[@class=’android.widget.Отредактируйте текст’]’, используя ‘XPATH’ с ContextID: » несколько: false [debug] [AndroidBootstrap] [ЖУРНАЛ начальной ЗАГРУЗКИ] [debug] Не удалось найти элемент. Очистка кэша специальных возможностей и повторная попытка. [debug] [AndroidBootstrap] [ЖУРНАЛ НАЧАЛЬНОЙ ЗАГРУЗКИ] [debug] Поиск ‘//*[@class=’android.widget.Отредактируйте текст’]’, используя ‘XPATH’ с ContextID: » множественный: false [debug] [AndroidBootstrap] Полученный результат команды из bootstrap [debug] [MJSONWP] Соответствует коду ошибки JSONWP 7 для NoSuchElementError

Комментарии:

1. Как вы объявили и инициализировали свой драйвер? Покажите код для этого в вашем оригинальном сообщении, пожалуйста.

Ответ №1:

Вместо этого

 driver.findElementById("serviceUrl").sendKeys("ABC"); 
  

Попробуйте это.

 driver.findElementByClassName("android.widget.EditText").sendKeys("ABC");
  

Как предложил OP, вы также можете попробовать xapth .

 driver.findElementByxpath("//*[@resource-id='serviceUrl']").sendKeys("ABC"); 
  

Или

 driver.findElementByxpath("//*[@class='android.widget.EditText']").sendKeys("ABC"); 
  

Комментарии:

1. Прошу прощения за быстрый ответ @ Kajal, не могли бы вы, пожалуйста, добавить xpath, также используя идентификатор ресурса и имя класса, которое будет наилучшим.

2. Первая версия будет работать, если драйвер объявлен правильно. Если вы хотите использовать xpath, вам нужно указать resource-id в xpath, а не «id», если вы используете правильный драйвер, однако findElementById попытается выполнить поиск ID, context-id и resource-id (не обязательно в таком порядке), но xpath отличается.

3. Спасибо за ответ, я все еще не могу найти элементы с указанными выше xpaths, пожалуйста, найдите файл объявления драйвера f = новый файл («src»); Файл fs = новый файл (f,»LS_eCOA.apk»); DesiredCapabilities cap=новые DesiredCapabilities(); cap.setCapability (MobileCapabilityType. ИМЯ_УСТРОЙСТВА, «EDC»); cap.setCapability(MobileCapabilityType. ПРИЛОЖЕНИЕ, fs.getAbsolutePath()); AndroidDriver<AndroidElement> драйвер =новый AndroidDriver<>(новый URL (» 127.0.0.1: 4723 / wd / hub»), cap );

4. [debug] [AndroidBootstrap] [ЖУРНАЛ НАЧАЛЬНОЙ ЗАГРУЗКИ] [debug] Поиск ‘//*[@class=’android.widget. Отредактируйте текст’]’, используя ‘XPATH’ с ContextID: » множественный: false [debug] [AndroidBootstrap] Полученный результат команды из bootstrap [debug] [MJSONWP] Соответствует коду ошибки JSONWP 7 для NoSuchElementError

Ответ №2:

Вы можете попробовать это:

 driver.findElement(By.id("serviceUrl")).sendKeys("ABC");