我是靠谱客的博主 聪明烤鸡,这篇文章主要介绍appium测试app时如何切换到webview前言代码,现在分享给大家,希望可以做个参考。

文章目录

  • 前言
  • 代码

在这里插入图片描述

前言

很多 app 都会存在 webview 控件,我们使用 appium 在测试 app 难免会遇到 webview,我们可以直接使用 uiautomatorviewer 去硬抓取,当然我们推荐使用 pc 的 chrome 去抓,因为这样更稳定一些

代码

进入 webview

getContextHandles 这个方法我们可以发现一般有如下的 context

  • NATIVE_APP
  • WEBVIEW_com.example.testap

我们需要进入的是第二个

复制代码
1
2
3
4
5
6
driver.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
6
driver.getContextHandles().forEach((context) -> { if (context.toString().contains("NATIVE_APP")) { driver.context(context.toString()); } });

最后

以上就是聪明烤鸡最近收集整理的关于appium测试app时如何切换到webview前言代码的全部内容,更多相关appium测试app时如何切换到webview前言代码内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(90)

评论列表共有 0 条评论

立即
投稿
返回
顶部