appium定位WebView頁面元素


使用AndroidDriver/IOSDriver對象的getContextHandles()方法得到所有上下文句柄,其中原生app的句柄會有"NATIVE_APP"字樣,webview句柄會有"WEBVIEW"字樣。

確定了webview句柄后,使用對象的context()方法進入webview,如果想返回原生app,使用context()方法,傳入原生app句柄即可。

然后再通過定位方法定位元素。

 

安卓4.4之前,需要使用Selendroid,具體代碼如下(摘自Appium API文檔 https://testerhome.com/topics/3144):

 1 //配置 webdriver 並啟動 webview 應用。
 2 DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
 3 desiredCapabilities.setCapability("device", "Selendroid");
 4 desiredCapabilities.setCapability("app", "/path/to/some.apk");  
 5 URL url = new URL("http://127.0.0.1:4723/wd/hub");
 6 RemoteWebDriver remoteWebDriver = new RemoteWebDriver(url, desiredCapabilities);
 7 
 8 // 切換到最新的web視圖
 9 remoteWebDriver.switchTo().window("WEBVIEW");
10 
11 //在 guinea-pig 頁面用 id 和 元素交互。
12 WebElement div = remoteWebDriver.findElement(By.id("i_am_an_id"));
13 Assert.assertEquals("I am a div", div.getText()); //驗證得到的文本是否正確。
14 remoteWebDriver.findElement(By.id("comments")).sendKeys("My comment"); //填寫評論。
15 
16 //離開 webview,回到原生應用。
17 remoteWebDriver.switchTo().window("NATIVE_APP");
18 
19 //關閉應用。
20 remoteWebDriver.quit();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM