文章目录
- 前言
- 代码

前言
很多 app 都会存在 webview 控件,我们使用 appium 在测试 app 难免会遇到 webview,我们可以直接使用 uiautomatorviewer 去硬抓取,当然我们推荐使用 pc 的 chrome 去抓,因为这样更稳定一些
代码
进入 webview
getContextHandles 这个方法我们可以发现一般有如下的 context
- NATIVE_APP
- WEBVIEW_com.example.testap
我们需要进入的是第二个
复制代码
1
2
3
4
5
6driver.getContextHandles().forEach((context) -> { if (context.toString().contains("WEBVIEW")) { driver.context(context.toString()); } });
在 webview 中找到指定窗口
在 webview 中往往会有多窗口,我们需要切换到指定的窗口我们才能点击按钮,这个切换窗口实际就和 selenium 很类似了,如下代码所示我们可以通过输出窗口中的信息才检查那个窗口才是我们需要的,最后我们发现我们需要的就是第一个窗口
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14// 用来调试定位所需要点击的控件在 webview 的哪一个窗口中 driver.getWindowHandles().forEach((window) -> { driver.switchTo().window(window); System.out.println("==标题=="); System.out.println(driver.getTitle()); System.out.println("==全文=="); System.out.println(driver.getPageSource()); }); // 切换窗口(经测试发现在第一个窗口中) Set<String> set = driver.getWindowHandles(); Object[] arr = set.toArray(); driver.switchTo().window(arr[0].toString());
退出 webview
退出 webview 实际就是进入 NATIVE_APP,所以和进入 webview 操作一致
复制代码
1
2
3
4
5
6driver.getContextHandles().forEach((context) -> { if (context.toString().contains("NATIVE_APP")) { driver.context(context.toString()); } });
最后
以上就是聪明烤鸡最近收集整理的关于appium测试app时如何切换到webview前言代码的全部内容,更多相关appium测试app时如何切换到webview前言代码内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复