#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");