将微信的网页用inspect获取元素

1.在聊天窗口输入:
http://debugx5.qq.com
2.安装tbs
3.点击信息,打开tbs内核inspector调试功能

Paste_Image.png

4.在网页打开inspect,获取到需要的元素

Paste_Image.png
Paste_Image.png

问题:
微信的webview可以定位元素了,但是用appium的context还是不能转换成功,是不是因为webview没有开启debug的原因?这个只能用来调试页面了

环境:
真机中Android system webview版本55.0.2883.91
appium中chromedriver 版本2.25与上面55对应
chromedriver路径:
D:\Program Files (x86)\Appium\node_modules\appium\node_modules\appium-chromedriver\chromedriver\win
5.应用中webview需要在代码中设置打开debug:
WebView.setWebContentsDebuggingEnabled(true);
才会inspect成功

Paste_Image.png

Paste_Image.png
Paste_Image.png

最后找到了元素,运行成功
问题:
不是每次都能够完全的成功转换,有时候会获取到undefined,这个就不能转换,怎么提高可靠性?

代码:

import os,time
from appium import webdriver

desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '6.0'
desired_caps['deviceName'] = 'avd2'
# desired_caps['appPackage'] = 'com.tencent.mm'
desired_caps['appPackage'] = 'com.example.administrator.myapplication'
# desired_caps['appActivity'] = '.ui.LauncherUI'
desired_caps['appActivity'] = '.MainActivity'
desired_caps['automationName'] = 'appium'
desired_caps['newCommandTimeout'] = '300000'
desired_caps['autoWebview'] = 'true'
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
time.sleep(5)
for con in cons:
    if 'WEBVIEW' in con and 'undefine' not in con:
        result=driver.switch_to.context(con)
        break
cur=driver.current_context
driver.find_element_by_xpath("//*[@id=\"kw\"]").send_keys('hello')
driver.switch_to.context("NATIVE_APP")

你可能感兴趣的:(将微信的网页用inspect获取元素)