appium操作webview注意事项
1.apk的H5必须是debug模式
2.需要fan -- qiang ,才能查看H5的元素 下载fan -- qiang工具 https://github.com/killgcd/chromego
61.91.161.217 chrome-devtools-frontend.appspot.com
61.91.161.217 chrometophone.appspot.com
这两句加到hosts文件里,解决Chrome devtools inspect后打开空白解决办法
3.chrome://inspect/#devices 查看手机谷歌系统的版本如(43),电脑的谷歌版本要大于等于手机系统内核
4.切换webview报错,显示谷歌驱动和系统内核的版本不对,下载对应的谷歌驱动替换掉appium自带的谷歌驱动
(我的appium地址C:\\Program Files (x86)\\Appium\\resources\\app\\node_modules\\appium\\node_modules\\appium-chromedriver\\chromedriver\win\\chromedriver.exe )
5.desired_caps["chromedriverExcutable"]参数地址写已经替换的chrome驱动地址
selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: No Chromedriver found that can automate Chrome '43.0.2357'. See https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/web/chromedriver.md for more details.
系统都会自带chrome内核,如我自测的手机谷歌内核是43版本,对应的谷歌驱动是2.20
我自己的appium安装路劲下的谷歌驱动版本是不适合我自测的手机的,下载了谷歌驱动2.20替换掉
C:\\Program Files (x86)\\Appium\\resources\\app\\node_modules\\appium\\node_modules\\appium-chromedriver\\chromedriver\win\\chromedriver.exe 下的chromedriver.exe
appium的参数修改
desired_caps["chromedriverExcutable"] = "C:\\Program Files (x86)\\Appium\\resources\\app\\node_modules\\appium\\node_modules\\appium-chromedriver\\chromedriver\win\\chromedriver.exe" # 谷歌驱动位置,操作H5
需要
# 初始化测试平台
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '5.0' # 6.0小米
desired_caps['deviceName'] = '1c3c53dd' # OPPO ba8fac36 / 小米 78d358ad
desired_caps['appPackage'] = 'com.nuomi'
desired_caps['appActivity'] = 'com.baidu.bainuo.dex.InstallDexActivity'
desired_caps['appWaitActivity'] = 'com.baidu.bainuo.home.HomeTabActivity'
desired_caps["unicodeKeyboard"] = "True" # 输入中文
desired_caps["resetKeyboard"] = "True" # 输入中文
desired_caps["chromedriverExcutable"] = "C:\\Program Files (x86)\\Appium\\resources\\app\\node_modules\\appium\\node_modules\\appium-chromedriver\\chromedriver\win\\chromedriver.exe" # 谷歌驱动位置,操作H5
desired_caps['chromeOptions'] = {'androidProcess': 'com.nuomi'} # 驱动H5自动化关键之一
https://www.cnblogs.com/nebie/articles/9483307.html
谷歌驱动下载-版本对应关系
https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/web/chromedriver.md
下载地址
https://chromedriver.storage.googleapis.com/index.html
基于以上环境配置完成后,应用的原生页面才可以和H5页面进行切换操作
print(self.driver.contexts) # 打印所有上下文
print(self.driver.current_context) # 打印当前的页面
print(self.driver.current_activity) # 打印当前的activity
self.driver.switch_to.context("NATIVE_APP") # 切换到原生页面
self.driver.switch_to.context("WEBVIEW_com.android.browser") # 切换到H5页面
切换到H5后,直接可以用selenium就可以操作H5页面上的元素的(亲测可用)