美文网首页移动端android
Appium 安卓自动化:遇到几个费肝的问题

Appium 安卓自动化:遇到几个费肝的问题

作者: 狄仁杰666 | 来源:发表于2022-08-18 16:25 被阅读0次

    前言

    来啦老铁!

    近期在搭建安卓自动化环境、试运行脚本等时候,遇到一些技术问题,过程中也花了不少时间研究,特此记录,希望对大家有帮助~

    问题列表

    1. 启动安卓模拟器遇到报错;
    2. 开始执行脚本时遇到报错;
    3. 通过自动化点击某些具有重定向功能的按钮后,无法重定向;

    1. 启动安卓模拟器遇到报错;

    • 启动安卓模拟器时遇到报错如下:
    报错

    这个是说系统环境变量里头没有找到 ANDROID_SDK_ROOT 这个环境变量,需要从环境变量方面入手;

    • 解决办法:

    a. 修改 ANDROID_HOME 环境变量为:~/Library/Android/sdk;
    b. 增加环境变量 ANDROID_SDK_ROOT,其值为 ~/.android/avd;
    c. 修改如下:

    解决方式

    注意: 记得保存 ~/.bash_profile 和 source ~/.bash_profile;

    2. 开始执行脚本时遇到报错;

    • 开始执行脚本时遇到报错如下:
    报错

    然后模拟器内浏览器的表现是打开浏览器,马上又关闭,第一时间我想到的是 chromedriver 跟模拟器中 Chrome 浏览器的版本不匹配,然而用了命令:appium --allow-insecure chromedriver_autodownload 去启动 appium server,已经让 appium 自动下载了,也没办法解决,后来网上找了下资料,最终解决;

    • 解决办法:

    a. 参考文献:https://github.com/webdriverio/webdriverio/issues/6881
    b. 主要就是要升级 nodejs,升级前是 v14.x.x,升级到 v16.x.x 就顺利解决了问题;

    这样的报错,没有任何有关 nodejs 版本方面不匹配的信息,还是比较隐晦的,需要特别记录一下~

    3. 通过自动化点击某些具有重定向功能的按钮后,无法重定向;

    • 现象:

    a. 在执行手机端浏览器自动化脚本的过程中发现,安卓 + Chrome 浏览器,在点击了某些有自动跳转功能的按钮后,页面未能自动跳转,而出现这个问题的时候,手工介入,点击页面任何其他地方时,能恢复重定向;

    b. 手工执行很正常,可以自动跳转;

    c. 安卓真机上也是同样的问题;

    d. iOS 上正常,可以自动跳转;

    综合这几个现象,感觉十分诡异,也研究了很久,最终找到了解决办法;

    • 解决办法:

    在点击这样的按钮时,需要使用 js 注入的方式,如:

    await retry(() => this.$.then(el => this._driver.execute(el => el.click(), el)));
    

    而不是原来的:

    await retry(() => this.$.then(el => el.click(opts)));
    

    目前遇到这几个花费比较多时间研究的,后续有遇到其他问题,再作记录。如果你有遇到 appium 相关的问题,不管解决与否,都欢迎到评论区一起讨论讨论~

    能力有限,欢迎指正、互相交流,感谢~

    如果本文对您有帮助,麻烦点赞、关注!

    感谢~

    相关文章

      网友评论

        本文标题:Appium 安卓自动化:遇到几个费肝的问题

        本文链接:https://www.haomeiwen.com/subject/tipnwrtx.html