我正在使用Java使用Appium自动化Android应用程序。我的情况是,我需要点击按钮1或按钮2,无论哪个存在
Appium错误日志:[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] 无法找到元素。清除辅助功能缓存并重试。 [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug]查找 ' // android.widget.ImageButton [@资源-ID =' net.ilius.android.meetic:ID / profileMailPremiumButton']' 使用' XPATH'与contextId:'' multiple:false
if (driver.findElementByXPath("//android.widget.ImageButton[@resource-id='net.ilius.android.meetic:id/profileMailPremiumButton']")
.isDisplayed()) {
driver.findElementByXPath("//android.widget.ImageButton[@resource-id='net.ilius.android.meetic:id/profileMailPremiumButton']")
.click();
} else {
driver.findElementById("net.ilius.android.meetic:id/profileMailButton").click();
}
答案 0 :(得分:1)
如果您使用 isDisplayed()并且UI 上没有元素,则会抛出异常 - 找不到元素。
因此,首先使用findElements检查该元素是否存在: driver.findElements(selector).isEmpty()
如果它是空的,则表示元素不可用,现在你可以转到else块
使用以下代码: `
if (!driver.findElements(By.xPath("//android.widget.ImageButton[@resource-id='button1']")).isEmpty()) {
driver.findElementByXPath("//android.widget.ImageButton[@resource-id='button1']").click();
} else {
driver.findElementById("button2").click();
}`