我无法单击“打开”按钮并获得例外"没有此类元素异常"。我尝试了所有XPath和id,但我得到了同样的例外。我尝试过getContextHandles(),它返回大小为1。这意味着控制无法切换。请帮助我点击"打开"按钮。
以下是我试过的xPath。
By.name("Open");
By.xpath("//android.widget.Button[@index='1']");
By.xpath("//android.widget.Button[@resource-id='org.hola:id/btn_open']");
By.xpath("//android.widget.Button[@resource-id='org.hola:id/btn_open' and @index='1' and @text='Open']");
答案 0 :(得分:0)
如果在启动任何应用程序后出现此弹出窗口,则必须在代码中设置“appActivity”和“appPackage”功能。
答案 1 :(得分:0)
尝试使用MobileBy代替By
MobileBy.name("Open");
MobileBy.xpath("//android.widget.Button[@index='1']");
MobileBy.xpath("//android.widget.Button[@resource-id='org.hola:id/btn_open']");
MobileBy.xpath("//android.widget.Button[@resource-id='org.hola:id/btn_open' and @index='1' and @text='Open']");
答案 2 :(得分:0)
可以使用 UIAutomator viewer 工具识别定位器。以下代码设置用于处理Appium中的弹出窗口
WebDriver driver;
@BeforeTest
static void setup() throws MalformedURLException{
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(CapabilityType.PLATFORM, "Android");
cap.setCapability(CapabilityType.VERSION, "Android-version");
cap.setCapability("deviceName", "connected device name");
cap.setCapability("appPackage", "App package name");
cap.setCapability("appActivity", "App activity");
driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap);
}
@Test
static void Selendroid() throws InterruptedException{
Thread.sleep(2000);
driver.findElement(By.name("Locator")).click();
System.out.println(driver.findElementById("android:id/message").getText());
driver.findElement(By.name("Locator")).click();
}
对于浏览器提醒,请使用driver.switchTo().alert()
方法处理