我在使用 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


↙↙↙阅读原文可查看相关链接,并与作者交流