Appium Appium 如何获取 fiddler 中的 URL

lilychow · 2016年07月04日 · 最后由 chenjerome 回复于 2016年07月18日 · 616 次阅读

想要获取微信页面中的URL

通过fiddler可以获取到微信中某页面的URL,如下图:

Set<String> contextNames = driver.getContextHandles();
for (String contextName : contextNames) {
System.out.println(contextNames);
}

appium打印出来为NATIVE_APP

尝试使用driver.getCurrentUrl();等都提示错误(org.openqa.selenium.WebDriverException: Not yet implemented.)

大师们,如何获取微信页面中的URL呢?或者有其他自动化工具解决此问题吗?

共收到 7 条回复 时间 点赞

确认页面是内嵌的webview之后,切换之前做一下等待~

try {

Set<String> contextNames = driver.getContextHandles();
for ( String contextName : contextNames )
{
if ( contextName.contains( "WEBVIEW" ) ||contextName.contains( "webview" ) ){
contextName = contextName.substring( 0,contextName.indexOf( "_" ) );
System.out.println( "contextName:" + contextName );
driver.context( contextName );
System.out.println( "[-设备-] : xxx" +
" [-Success-]<< 步骤: 切换WEBVIEW Url:" +
driver.getCurrentUrl() );
break;
}
}
} catch ( Exception Error ) {
Error.printStackTrace();
}
}
  1. 你是安卓还是 iOS ?安卓的话无解,因为微信里面 webview 用的是 QQ 浏览器内核,appium 不支持。
  2. 能检测到 webview 的前提是代码里开了 webview 的 debug 开关。这个开关默认都是关的,你要让开发在代码里打开它。

#2楼 @chenhengjie123
1、是这个原因呀,我的是安卓系统。
2、appium不支持,有其他工具可以支持吗?

#3楼 @lilychow 如果是手动获取一些调试信息(如你说的 url),可以看下 各种 真机远程调试 方法 汇总,以及微信官方给的调试工具 http://bbs.mb.qq.com/thread-295889-1-1.html

如果是用工具做 UI 自动化,我目前没听说哪个工具可以支持。

@chenhengjie123 能检测到webview,却切换失败。这是什么原因呢?

driver.contexts
[u'NATIVE_APP', u'WEBVIEW_com.android.browser']
driver.switch_to.context('WEBVIEW_com.android.browser')
等到直到session关闭也没反应了。

#5楼 @superbaby11 感觉你这个内容和这个帖子关系不大,建议你另外开一个帖子并附上测试环境、测试脚本、 server log 等相应信息吧。

转换webview成功,如何获取 当前webView的url,driver.getCurrentUrl()获取到的url不是webview的URL

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