java - Appium 无法在 Android 设备上找到按钮

标签 java android selenium appium-android browserstack

以下是我尝试单击的按钮的 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 来看,单击按钮的正确方法是什么?我尝试的上述方法均未成功。每个都失败并显示一条错误消息,指出无法找到该元素。

最佳答案

请尝试使用以下代码进行点击。

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

使用文本点击:

您可以通过 UiAutomator2 使用 text 进行点击 如果您使用 appium 作为自动化引擎,请添加所需的功能 UiAutomator2

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();

    }

关于java - Appium 无法在 Android 设备上找到按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59814868/

相关文章:

java - 我无法在 spark2 中设置 StreamingLogLevel

android: 9 带有透明边框的补丁图像作为图像的一部分

java - Selenium Webdriver 在打开的 Firefox 中失败

android - 更新到 build-plugin 3.4.0 后房间出现问题

python - Selenium:get_attribute 一个条件

python - 使用 Python Selenium Webdriver 捕获 PDF 文件

java - 如何将 Eclipse GAE 项目迁移到 Maven,使其不会绑定(bind)到 Eclipse?

java - 有没有办法让 2 个不同的 RecyclerView 相互通信?

java - Jaxb Unmarshall 找到预期标签并失败,因为它是意外的

android - android 到 android 中的屏幕共享和 tem 查看器