概述
1、手机中存在H5页面,如下图
2、通过命令:print driver.contexts,查看到页面中存在一个list:
["NATIVE_APP","WEBVIEW_com.xxx.xxx.agent"]
NATIVE_APP:这个就是native,也就是原生的
WEBVIEW_com.xxxx :这个就是webview
问题:当使用命令,打印不出来webview时,需要开发加上一个代码:
【解决方案】
需要开启webview远程调试功能, Android 4.4以上,需要在应用代码中增加一下代码段开启该功能 (可由开发人员增加后重新打包给测试):
修改Activity extends CordovaActivity,设置setWebContentsDebuggingEnabled(true);
public class MyActivity extends CordovaActivity {
CordovaWebView cwv;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.init();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
this.appView.setWebContentsDebuggingEnabled(true);
}
// Set by <content src="index.html" /> in config.xml
loadUrl(launchUrl);
}
}
开启WebView远程调试功能后,重新打印contexts,成功!
>>> driver.contexts
['NATIVE_APP', 'WEBVIEW_com.sxxxxx.xxx']
3、切换到webview页面
driver.switch_to.context(contexts[1])
driver.switch_to.context("'WEBVIEW_com.sxxxxx.xxx'")
最好封装成一个方法:
def get_webView(self):
for cons in driver.contexts:
cc=cons.encode('utf-8')
if cc.lower().startswith("webview"):
self.driver.switch_to.context(cc)
break
遇到问题:
提示:selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command.
Original error: No Chromedriver found that can automate Chrome '46.0.2490'
就是PC端的Chromedriver版本不正确,位置在:
看报错的log日志:
打开网址后 ,能查找到对应的版本,下载后替换即可
点击对应版本,打开页面:(我的电脑是win64位的,但是没有win64,下载了win32,成功了)
4、切换后,使用命令查看是否成功
print driver.current.context
最后
以上就是任性紫菜为你收集整理的Appium自动化测试------app与webview切换访问1、手机中存在H5页面,如下图2、通过命令:print driver.contexts,查看到页面中存在一个list:3、切换到webview页面4、切换后,使用命令查看是否成功的全部内容,希望文章能够帮你解决Appium自动化测试------app与webview切换访问1、手机中存在H5页面,如下图2、通过命令:print driver.contexts,查看到页面中存在一个list:3、切换到webview页面4、切换后,使用命令查看是否成功所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复