以下是我尝试单击的按钮的 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/