还未发布过话题
  • 下面两个方法,不过都不能保证通用,换个输入法说不定就不行了
    1:抓取控件 id 或 name,按 id 或 name 来 click
    2:既然你 keyevent(66)(66 代表回车)不行,那你再试试看 keyevent(84)(84 代表搜索)

  • Appium 如何支持 android 7.0? at 2017年04月27日

    我发现 Appium1.6.3 和 1.6.4 在测试 Android7.0,有个问题,必须使用 uiautomator2 才可以支持。

    但是 appium 的 appium-uiautomator2-driver 又有一个 bug,它使用的 adb 端口写死了是 5037 端口(adb 默认端口),即使你在启动 appium 的 caps 里面传入自己定义的 adbPort 端口,也没有用。

    原因是 appium-uiautomator2-driver 在运行 adb 的时候,使用了开源的 adbkit,但是 adbkit 在执行 adb 命令时,需要传入 adbport(不传就使用 5037),而 appium-uiautomator2-driver 的代码里我看了一下,调用 adbkit 时没有传入指定的 adbport。。。

    所以如果想用 Appium 支持安卓 7,需要做以下几点:
    1:使用 Appium1.6.3 或以上版本
    2:启动 Appium 时设置 caps:capabilities.setCapability("automationName", "uiautomator2");
    3:确保 5037 端口没有被占用

  • 楼主是测试的 android 应用? 不同的输入法软件,以及不同的应用 APP,对输入法的按键定义都会不同,不太好找一个通用的方法。
    你想用 press_keycode(66) or keyevent(66),首先得要求你测试的这个 APP 的 “搜索” 按键,支持 keyevent

  • 是的,这个国行 iphone 的问题,之前在 facebook 的 github 上已经有人确认了,只有国行有问题,你换港行就没有问题。
    最近 Facebook 有没有解决这个 bug 我还不清楚。我一直用 iproxy 映射 USB 连接规避这个问题的。

  • 这个 Listening on USB 的日志提示,我后来发现似乎不同版本 iphone 有的会打印,有的不打印,但不影响实际测试。
    比如目前我的 iphone6P 启动 WDA 后,并不提示 Listening on USB,但 appium 运行自动化一切正常,所以个人觉得可以忽略了。

  • 一个月前遇到这个问题,也看到这个帖子可惜没有解决方法。。后来自己折腾了几天解决了,说一下我的解决方法吧,虽然不一定每个人的问题都相同,至少可以尝试一下:
    appium 到目前为止,使用的 FB 提供的 webdriveragent 驱动一直存在一个 bug,不支持中国国行全系 iphone 的 wifi 连接,FB 也没有打算修复此 bug,如果大家用 appium 测试中国国行 iphone,webdriveragent 就可能一直卡死,解决方法是使用 iproxy 将 wifi 的 tcp 协议转换成 usb 协议,具体方法:
    1)安装并启动 iproxy 把 webdriveragent 的默认 8100 端口转到 usb 协议(安装需联网):
    $ brew uninstall ideviceinstaller
    $ brew uninstall libimobiledevice
    $ brew install --HEAD libimobiledevice
    $ brew install ideviceinstaller
    $ iproxy 8100 8100
    注意 webdriveragent 监听的默认端口是 8100,如果你修改过端口,这里就改成你定义的端口
    2)手动启动 webdriveragent:
    xcodebuild -project /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination ‘id= 你的设备 UDID’ test
    3)确认 webdriveragent 在 iphone 上安装并启动后,就可以启动 appium 了,重要的是在启动 appium 的 cap 中传入下面这个参数,让 appium 连接上面步骤中手动启动的 WebDriverAgent:

    webDriverAgentUrl
    http://localhost:8100

    上面是关键!要传入这个 cap,不要让 appium 自己启动 WebDriverAgent,因为前面说了,appium 自己启动 WebDriverAgent 会引发 bug,导致中国国行手机无法与 WebDriverAgent 通过 tcp 协议通信,然后一直卡死。
    4)执行测试用例,看看这次是不是不会卡着了。。。

  • #4 楼 @zuiniao123 不好意思之前写错命令,是执行这个命令 “xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=你的 UDID' test”,你是在 xcode 里面运行 test 后看到提示 Listening on USB,还是在 Terminal 运行上面命令后看到提示 Listening on USB? 我的 iphone6P 是国行的,不知道和手机型号有没有关系。。

  • #2 楼 @zuiniao123 我发现应该是 WebDriverAgent 的 BUG(Appium 就是调用 WebDriverAgent 实现 XUITest 真机自动化),我用 IOS9.3 和 IOS10.2 两部手机做了试验,用 Terminal 进入到 WebDriverAgent 工程目录下,连接手机后运行命令"xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=你的 UDID' test",可以看到区别:

    1:IOS9.3 手机的运行结果明确提示:Listening on USB

    2:IOS10.2 手机的运行结果没有上面的提示,而是一直卡在下面这段:
    Test Case '-[UITestingUITests testRunner]' started.
    t = 0.00s Start Test at 2016-12-20 09:58:02:209
    t = 0.01s Set Up

    我去 github 的 WebDriverAgent 下载安装了最新的版本,测试后一样有这个问题,我猜测 WebDriverAgent 目前不支持 IOS10 最近几个新版本的真机运行。

  • @ 楼主,请问你解决了吗?我也遇到这个一模一样的问题,研究了 2 天还没有解决,环境是 appium1.6.3+xcode8.2+ios10.2iphone6P 真机。