Appium [已解决] Appium  测试 android 混合 app 时,在 Webview 中 url 切换后 driver 的 url 切换问题

爻施 · 2016年06月14日 · 最后由 爻施 回复于 2016年06月14日 · 2211 次阅读

我在使用 appium 测试混合的 android APP 时,在遇到 web view 后

driver.content("WEBVIEW");

切换到 web view
然后通过

driver.getURL();

获取到当前的 URL 是 **/my.html
这时是可以通过 web driver 的方式获取到控件的
后来点击该页面的一个按钮,比如设置按钮切换到设置页面 */setting.html,该页面也是 webview
这时再去获取 URL 还是 */my.html
URL 没有变,所有不能获取到该页面元素
我试过多种方法
首先,webview 确实只有一个
1.我就先切换成 NATIVE 再切换成 web view 再查看 url------失败
2.通过

driver.get(url);

方式手动切换 URL ------------失败
各位大神有没有遇到这个问题啊,求解


正如一楼所说,在切换 context 后还要切换 Windows,以下是我的解决办法😁

public void switchWindows(){
        try{
            Set<String> windows=driver.getWindowHandles();
            driver.switchTo().window((String) windows.toArray()[windows.size()-1]);
        }catch (Exception e){
            log.warn("Try to switch windows fails");
            log.warn(e.getMessage());
        }
    }

通过这个方法来切换至最前面的 Windows

共收到 3 条回复 时间 点赞

又一个把 context 和 window 搞混的。你的 webview context 里面有多个 web windows。 还得切换 windows 啊

做过 web 的自动化就好理解了。

#1 楼 @lihuazhang  可以获取 windows 列表?

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