appium定位WebView页面元素

本文介绍如何使用Appium的AndroidDriver/IOSDriver对象处理移动应用中的WebView。通过getContextHandles方法获取不同上下文句柄,利用context方法切换至WebView进行元素定位与操作。文中还提供了针对安卓4.4及以前版本使用Selendroid的具体示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用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();

 

转载于:https://www.cnblogs.com/test-researcher/p/6676686.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值