Appium 在 webview 里再一次进入 web view 获取上下文方法 in appium。

June · 2015年10月17日 · 最后由 红鼓 回复于 2016年02月26日 · 1312 次阅读

从 native 进入 webview 获取上下文大家应该都知道方法。

Set<String> contextNames = driver.getContextHandles();
        for (String contextName : contextNames) {
            print(contextName);
            if (contextName.contains("WEBVIEW")) {
                driver.context(contextName);
            }
        }

但是在 weiview 点击再一次进入 webview 时这个代码就不管用了。因为有两个 webview 打开着。所以上面代码结果是 context 到第一个 webview 上。
解决方法其实很简单。在两个 webview 选择最终打开的 webview 就行。用过 selenium 的朋友应该都知道 windowhandle 这个东东。
用 swich to 到目标 windowhandle 就行。

Set<String> contextNames = driver.getContextHandles();
        for (String contextName : contextNames) {
            print(contextName);
            if (contextName.contains("WEBVIEW")) {
                driver.context(contextName);

                Thread.sleep(500);

                Set<String> windowsHandles = driver.getWindowHandles();
                for (String windowsHandle : windowsHandles) {
                    print("windowsHandle名: " + windowsHandle);
                    driver.switchTo().window(windowsHandle);
                }
            }
        }
共收到 1 条回复 时间 点赞

学习了

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册