美文网首页
Appium疑难杂症

Appium疑难杂症

作者: 米洛丶 | 来源:发表于2017-06-30 10:42 被阅读0次

    坑之初体验

    在Appium的初体验中,遇到了一些坑坑洼洼。将他们记录下来,以后方便查阅。

    1. session大于60秒没接收到命令自动关闭

    通过Appium-Python-Client连接到appium的session,60秒内没有操作的话,session就会被自动关闭,操作指的是元素的定位、获取、点击、输入等。
    解决办法: desired_caps中加入超时时间配置
    Python代码如下:

    desired_caps = {}
    # 在启动配置里面加入newCommandTimeout参数
    desired_caps['newCommandTimeout'] = 200
    

    2. Appium通过npm安装不上,咋个办

    解决办法:
    使用淘宝镜像cnpm安装, 具体可见我前一篇文章里的安装appium
    但是注意cnpm默认在当前目录安装npm包

    3. UIAutomationviewer不支持动态页面

    解决办法:

    1. 先不启动Appium,直接开UIAutomationviewer,先获取到想要的控件信息。
    2. 启动安卓虚拟机,在虚拟机里边获取(但是虚拟机需要安装自己想要的包,甚是麻烦啊);
    3. 用driver.page_source查看源码,然后正则抓取相关控件信息(但是我好像没发现id信息), 尽量不要用xpath定位xml页面,查找非常慢;
    4. hierarchyviewer代替此工具,前提是设备开启ViewServer(虚拟机是默认开启的),真机一般只有工程机能开启,市面上目前发现只有小米设备可以开启

    4. 怎么查看设备是否连接

    解决办法:
    设备通过usb连接上计算机以后,在cmd窗口输入adb devices
    可获取到设备信息。

    5. 获取包名

    解决办法:
    一般情况可以用查看日志的办法,可以先清空日志
    adb logcat -c
    然后获取正在展示app,前提是手机端要打开此app
    adb logcat | grep display
    然后可以从正在展示的内容里提取 package和activity了,但是我能获取到支付宝的,QQ却不可以,很神奇。

    20180317 21:06 updated:

    • mac/linux adb shell dumpsys activity | grep "mFocusedActivity"
    • windows adb shell dumpsys activity | findstr "mFocusedActivity"

    6. adb devices获取不到夜神模拟器

    参考地址adb devices检测不到夜神模拟器

    1、dos下,cd进入到夜神模拟器的bin目录
    代码:
    nox_adb connect 127.0.0.1:62001

    2.dos下,进入进Android SDK下的platform-tools目录
    代码:
    adb connect 127.0.0.1:62001

    7. 打开通知栏

    driver.open_notifications()
    
    

    8. adb devices显示无设备(未连接上手机)

    • adb版本过低,需要更新adb版本。

    • 更换数据线

      三条数据线,一条移动电源赠送,一条品胜,一条0.01元拼团,手机均为红米Note4。但是只有1分钱那条能正常连接usb,其他的adb无法获取到设备。

    • 检查手机的USB调试模式是否打开(请打开安装等权限)

    9. no-reset

    如果不想每次登陆都是一个很纯净的环境的话,可以在desired_caps带上这个参数, 设置为True就好。

    desired_caps['no-reset'] = True
    

    10. 钉钉此类应用无法启动

    可以先启动手机主页面, 然后从里边找到钉钉click。

    11. adb介绍及其命令

    adb介绍及其命令

    相关文章

      网友评论

          本文标题:Appium疑难杂症

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