无法在Android 7模拟器中使用最新的Appium找到元素

时间:2017-03-02 11:39:50

标签: java android selenium appium

我使用selenium和Appium以Java作为编码语言为Android编写了测试自动化脚本。这些脚本在Android 6 Emulator上运行得非常好。但是,在Android 7模拟器上,驱动程序会启动应用程序,但无法在应用程序中找到任何元素。

示例代码:

DesiredCapabilities capabilities = new DesiredCapabilities();

capabilities.setCapability("noReset", "true");

capabilities.setCapability("deviceName", "Nexus_5_API_24_Automation");

capabilities.setCapability("platformName", "Android");

capabilities.setCapability("app","D:\\MyProject\\apk\\test-app-6.31.11.apk");

capabilities.setCapability("newCommandTimeout", 0);

try {       
     driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);   
} catch (Exception e) {     
    Assert.fail("The app launched failed.");
 }

CommonUtils.waitInSeconds(10); // Custom method with Thread.sleep() method to wait for 10 secs


driver.findElement(By.xpath("//android.widget.TextView[@text='Device']")).click();


driver.closeApp();

driver.quit();

其中android.widget.TextView是类名,'text'属性包含'Device'作为文本。

当我运行它时,它在driver.findElement步骤失败并抛出NoSuchElementException。

带有文字'设备'的元素是一个标签名称,可见,并在Android 6模拟器上单击。

对于Android 6,我使用的是Appium 1.4.13 GUI版本。

对于Android 7,我使用Appium版本1.6.3非UI版本。

Appium客户端库:java-client-4.1.2.jar

请注意:我无法使用设备,因为我们的组织目前无法使用这些设备。

对于造成这个问题的原因,我完全不知道。任何帮助都感激不尽。提前谢谢!

1 个答案:

答案 0 :(得分:0)

启动Appium GUI Inspector并检查该元素是否具有text属性。 您可以通过在GUI中提供模拟器名称并在CLI中启动Appium 1.6.3(因此启动appium 1.6.3,打开appium GUI 1.5并单击检查器)将Appium 1.5 GUI与检查器一起使用,如果您提供应用程序和其他路径,它将起作用'的工作人员'在设置中。