2017-03-02 50 views
0

我已經爲Android編寫了測試自動化腳本,其中使用了selenium和Appium以及Java作爲編碼語言。腳本在Android 6 Emulator上運行得非常好。但是,在Android 7仿真器上,驅動程序將啓動應用程序,但無法找到應用程序上的任何元素。無法在Android 7仿真器中使用最新的Appium查找元素

示例代碼:

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是類的名字,「文本」屬性包含「設備」爲文本。

當我運行這個,它在driver.findElement步驟失敗並拋出NoSuchElementException。

帶有文字「設備」的元素是一個標籤名稱,並且在Android 6模擬器上可見並且是可見的。

對於Android 6,我使用Appium 1.4.13 GUI版本。

對於Android 7,我使用Appium版本1.6.3的非UI版本。

Appium客戶端庫:Java的客戶端 - 4.1.2.jar

請注意:因爲他們不是目前在我的組織可我不能使用的設備。

我完全不知道是什麼導致了這個問題。任何幫助都感激不盡。提前致謝!

回答

0

啓動Appium GUI Inspector並檢查該元素是否具有文本屬性。 通過在GUI中提供模擬器名稱並在CLI中啓動Appium 1.6.3(因此啓動appium 1.6.3,打開appium GUI 1.5並單擊檢查器),您可以將Appium 1.5 GUI與檢查器一起使用,如果您提供了應用程序的路徑並且其他「工作人員」的設置。

+0

非常感謝您的幫助!該元素確實有一個文本屬性,但我發現還有另一個問題。文本屬性中的文本在Android 7.0中自動大寫,因爲它在Android 6.0中爲小寫字母。這就是它失敗的原因。現在開發人員已同意將所有文本更改爲大寫字母:) –

相關問題