1.通过微信打开debugx5.qq.com, 打开调试模式
2.接usb, google浏览器输入 chrome://inspect/#devices
3. 77.0是该微信使用的webveiw内核版本,我们要去下载对应的内核驱动 chromedriver 77。打开https://npm.taobao.org/mirrors/chromedriver, 下载77版本win32。
4. python 添加配置 'chromedriverExecutableDir':r"C:\Users\admin\Downloads\chromedriver_win32" (chromedriver的目录)
5. cmd输入 adb shell dumpsys activity top | findstr ACTIVITY,找出webview的pid 25156
6. cmd输入 adb shell ps 25156
7.python配置加上 'chromeOptions': {'androidProcess': 'com.tencent.mm:toolsmp'}
8. 然后print(driver.contexts)找到context, driver.switch_to.context('WEBVIEW_com.tencent.mm:toolsmp')
例子:
from appium import webdriver
from time import sleep
desired_caps = {
'platformName': 'Android',
'platformVersion': '10.0.0',
'deviceName': 'ANA_AN00',
'appPackage': 'com.tencent.mm',
'appActivity': '.ui.LauncherUI',
'unicodeKeyboard': True,
'resetKeyboard': True,
'noReset': True,
'browserName': '',
'chromedriverExecutableDir':r"C:\Users\admin\Downloads\chromedriver_win32",
'chromeOptions': {'androidProcess': 'com.tencent.mm:toolsmp'}
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
sleep(2)
driver.find_element_by_id('com.tencent.mm:id/f8y').click()
sleep(2)
driver.find_element_by_android_uiautomator('new UiSelector().text("搜索")').set_text('xxx服务号')
sleep(2)
driver.find_element_by_xpath('//*[@resource-id="com.tencent.mm:id/gbv"]').click()
sleep(2)
driver.find_element_by_android_uiautomator('new UiSelector().text("个人中心")').click()
sleep(2)
driver.find_element_by_android_uiautomator('new UiSelector().text("我的奖励")').click()
sleep(2)
print(driver.contexts)
driver.switch_to.context('WEBVIEW_com.tencent.mm:toolsmp')
sleep(2)
driver.find_element_by_xpath('//p[@class="change-login"]').click()