Не удается идентифицировать элементы во время выполнения с помощью Appium - PullRequest
0 голосов
/ 21 июня 2019

Я новичок в appium и Java, поэтому, пожалуйста, потерпите меня.

Я пытаюсь автоматизировать приложение на эмуляторе.Я могу проверить элементы в UIAUTOMATORVIEWER, однако, когда я запускаю код, ни один элемент на странице не может быть идентифицирован.Приложение открывается, но элементы не могут быть идентифицированы.

Это свойство проверяемого элемента: Class: android.widget.Button Content-desc: LOGIN

Это частьИсточник страницы во время выполнения, как вы можете видеть, кнопка входа в систему присутствует на странице:

Это суть моего кода:

DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());         
cap.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.ANDROID);
cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Google Pixel 2");
cap.setCapability(MobileCapabilityType.BROWSER_NAME,"");
cap.setCapability(MobileCapabilityType.PLATFORM_VERSION, "8.0");
cap.setCapability("automationName", "UiAutomator2");    
cap.setCapability(AndroidMobileCapabilityType.APP_PACKAGE, "com.kruxanalytics.kruxmetrix");
cap.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY, "com.kruxanalytics.kruxmetrix.MainActivity");

I have tried the following find element methods:

driver.findElementByAccessibilityId("LOGIN").click();
driver.findElement(By.xpath("//android.widget.Button[@content-desc='LOGIN']")).click();

Appium log mostly contains this:
[WD Proxy] Got an unexpected response: {"sessionId":"5f7bca9b-2e8b-46a7-9727-53a85e0d6df0","status":7,"value":"An element could not be located on the page using the given search parameters."}
[debug] [MJSONWP] Matched JSONWP error code 7 to NoSuchElementError

1 Ответ

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

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

Поэтому измените эту строку:

driver.findElementByAccessibilityId("LOGIN").click();

на эту:

new WebDriverWait(driver,30)
        .until(ExpectedConditions
                .elementToBeClickable(By.xpath("//android.widget.Button[@content-desc='LOGIN ']")))
        .click();

Дополнительная информация: Явное ожидание - Автоматизация мобильных тестов с Appium

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...