Appium 微信测试 H5 页面是,无法转到 webview 的 context,log日志看到 context 只有 native_app

lzr · 2017年01月17日 · 最后由 journey1989 回复于 2019年11月28日 · 2235 次阅读

微信测试 H5 页面,无法转 webview 的 context

在 log 中一直只显示只有 NATIVE_APP,看了很多朋友的帖子,尝试了好多方法还是不可以

测试环境:

  • win10
  • Android 5.1
  • appium 1.4.16
  • python
以下是我的代码

from appium import webdriver
from appium.webdriver.mobilecommand import MobileCommand
import time

desired_caps = {'platformName': 'Android',
'platformVersion': '5.1',
'deviceName': 'MEIZU PRO5',
'appPackage': 'com.tencent.mm',
'appActivity':'com.tencent.mm.ui.LauncherUI',
'unicodeKeyboard': True,
'resetKeyboard': True,
'chromeOptions': {'androidProcess': 'com.android.browser'}
}

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

driver.find_element_by_id("com.tencent.mm:id/c72").click()
time.sleep(10)
driver.find_element_by_id("com.tencent.mm:id/blj").clear()
driver.find_element_by_id("com.tencent.mm:id/blj").send_keys("xxxxx")# 用户名
driver.find_element_by_id("com.tencent.mm:id/gl").send_keys("xxxxxx")# 密码
driver.find_element_by_id("com.tencent.mm:id/a9w").click()# 登录
driver.implicitly_wait(30)
driver.find_element_by_class_name("android.widget.Button").click()
time.sleep(40)
driver.find_element_by_id("com.tencent.mm:id/adc").click()
time.sleep(10)
driver.find_element_by_id("com.tencent.mm:id/a2_").send_keys("http://m.ucar.com")
driver.implicitly_wait(10)
driver.find_element_by_id("com.tencent.mm:id/a2f").click()# 点击发送按钮
driver.implicitly_wait(60)
driver.find_element_by_id("com.tencent.mm:id/i_").click()# 点击地址,跳转至首页
#driver.implicitly_wait(100)
time.sleep(20)
print driver.contexts

'''切换到 H5 页面的 webdriver'''
driver.execute(MobileCommand.SWITCH_TO_CONTEXT,{"name":"WEBVIEW_com.tencent.mm:tools"})

driver.implicitly_wait(30)
'''以下部分是 webview 页面的操作'''
driver.find_element_by_xpath('//*[@id="pro-touch"]/li[1]/div[2]/p[1]').click()

求大神指导一下,搞了好久感觉就卡在这个地方,相当苦恼

共收到 9 条回复 时间 点赞

hi,请问你后来解决了没?

同问,是否解决呢?

@yaming116 为嘛点开你发的链接,还是这篇帖子

网上很多关于切换 webview 的问题,只有 native_app 的话,确认下 app 是否打开 debug 模式。WebView.setWebContentsDebuggingEnabled(true)

好像是在微信中要打开 debugx5

楼上两个老哥,问题解决了吗?我也是不能 switch。

回复

感谢大佬, 这个问题困了我 3 天, 给大佬打 call, 谢谢啊~~~

WebView.setWebContentDebbugingEnabled(true) 和微信 x5 内核 debug 模式都打开了,进入 h5,context 还是只有 native.app,求解

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