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页面上的元素的(亲测可用)

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐