小程序许多界面都是hybrid,有些webview页面用uiautomator viewer查看不到元素,这里就要 获取webview 的pagesource了
1.环境:
需要确定appium_chromedriver的版本和微信的webview版本对应:
获取微信的webview版本信息,打开x5调试debugx5.qq.com 在信息页面下打开对应的inspector调试 然后进入谷歌浏览器chrome://inspect/#devices在
对应的设备下查看 appium_chromedriver版本自行百度
2.app启动参数:
在caps中指定对应的driver:
1.caps[‘chromedriverExecutableDir‘]=r‘C:\Users\Administrator\Desktop\appium_chromedriver‘
2.caps[‘chromedriverExecutable‘]=r‘C:\Users\Administrator\Desktop\appium_chromedriver\chromedriver.exe‘
加上对应Androidprocess
caps[‘chromeOptions‘]={‘androidProcess‘:xxxx‘,
‘args‘: [‘--no-sandbox‘]
}
其中获取androidProcess的方法为: 先进入对应界面
获取进程pid
adb shell dumpsys activity top | findstr ACTIVITY
获取name
adb shell ps + pid
3.代码:
# print("======") # contexts=driver.contexts # print(contexts) # driver.switch_to.context("WEBVIEW_com.tencent.wework") print("switch success") # all_handles = driver.window_handles # print (len(all_handles)) # print(all_handles) # print (driver.page_source)
4.退出webview回到native
driver.switch_to.context("NATIVE_APP")