Appium 无法在 android 设备上找到按钮
Appium is unable to find button on android device
以下是我尝试点击的按钮的 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();
使用文本点击:
您可以使用 text
和 UiAutomator2
点击
如果您使用 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();
}
以下是我尝试点击的按钮的 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();
使用文本点击:
您可以使用 text
和 UiAutomator2
点击
如果您使用 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();
}