Appium не может найти кнопку на устройстве android - PullRequest
0 голосов
/ 20 января 2020

Ниже приведен код html для кнопки, которую я пытаюсь нажать.

 <Button rounded style={styles.pickBtn} title="get started" onPress={signIn} testID="completeBoarding">
            <Text style={styles.pickBtnText}>GET STARTED</Text>
          </Button>

Это код, который я пытался использовать для нажатия на указанную кнопку.

String xPath = "//button[normalize-space()='GET STARTED']";
    AndroidElement searchElement = (AndroidElement) new WebDriverWait(driver, 30).until(
            ExpectedConditions.elementToBeClickable(MobileBy.xpath(xPath)));
    searchElement.click();

-

AndroidElement searchElement = (AndroidElement) new WebDriverWait(driver, 30).until(
            ExpectedConditions.elementToBeClickable(MobileBy.AccessibilityId("get started")));
    searchElement.click();

-

AndroidElement searchElement = (AndroidElement) new WebDriverWait(driver, 30).until(
            ExpectedConditions.elementToBeClickable(MobileBy.AccessibilityId("GET STARTED")));
    searchElement.click();

Из приведенного выше html, как правильно нажимать кнопку? Ни один из вышеперечисленных методов, которые я пробовал, не работал успешно Каждый из них завершился ошибкой, сообщив, что элемент не найден.

1 Ответ

1 голос
/ 20 января 2020

Пожалуйста, попробуйте с кодом ниже, чтобы нажать.

String xPath = "//*[@title='get started']";
    AndroidElement searchElement = (AndroidElement) new WebDriverWait(driver, 30).until(
            ExpectedConditions.elementToBeClickable(MobileBy.xpath(xPath)));
    searchElement.click();

Нажмите, используя текст:

Вы можете нажать, используя text с UiAutomator2 Добавить в требуемая возможность UiAutomator2, если вы используете appium в качестве механизма автоматизации.

capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "UiAutomator2");

, затем используйте эту функцию

public void TapByText(String buttonText) {
        String buttonName="new UiSelector().text(\"MY_TEXT\")".replace("MY_TEXT", buttonText);
        @SuppressWarnings("unchecked")
        List<WebElement> el = (List<WebElement>) driver.findElements(MobileBy.AndroidUIAutomator(buttonName));
        System.out.println(el.size());
        new TouchAction(driver).press(ElementOption.element(el.get(0))).waitAction().release().perform();

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