在App开发过程中,很容易用到第三方的WebView控件,这个属于移动端混合型App。在我们做自动化测试的过程中,就要对这种情况进行处理,最通用的办法就是先将appium切换到webview模式然后按查找web元素的方法对WebView里面的元素进行操作即可。具体实施方法,可以参考:http://www.tuicool.com/articles/bIBRZze
可是也有很多情况,如新浪微博第三方授权登录页面(如图一),这个嵌入到App中的第三方WebView,在查上下文信息的时候,找不到对应的WebView。
图一:网易新闻客户端新浪微博授权
查找当前可用的上下文信息的时候,用如下代码:
contexts=self.driver.contexts
for cotext in contexts:
print cotext
根据输出的信息,如果有WebView信息的时候,可以切换:
driver.switch_to.context("WEBVIEW")
或是 driver.context(“WEBVIEW”)
但是一直找不到WebView信息,如图二所示,此时就没有办法进行切换。