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