我画的不只是萝莉,还是老婆

  • Appium 中的 JS 就是基于 mocha 的,如果受不了 Promise 的写法,可以使用这个包来写:yiewd

  • 😂 我感觉 node 和 python 写法应该差不多 (就两行):

    contexts = yield driver.contexts();
    yield driver.context(contexts[contexts.length - 1]);
    

    你上面的切换写死了 context:WEBVIEW_com.sina.book,你咋能确定当前手机当前 APP 当前 WebView 的 context 是这个呢?不是这个 Appium 会报错,你需要先用 Appium 自己取读取这个值,具体方法你得查 WD 的 API。

  • 我写的例子是用 Node 的。错误日志,最好看 Appium 的 log。
    切换到 APP 中的 webview,首先要得到这个 webview 对应的上下文(context),wd 中有个方法可以获取当前全部的 contexts,一般 APP 里面每个 webview 对应的 context 都不同,在不同机器上也不会相同,你不能写死了,要先把 contexts 取到。
    比方你刚刚打开了一个 webview,这个时候 contexts 的最后一个字符串就是这个 webview 的 context。

  • 先获取全部的 contexts:

    const contexts = yield driver.contexts();
    

    contexts 是个数组,第一个是原生,例如是:NATIVE_APP。每打开一个 webview,contexts 数组就会插进来一个值,contexts[contexts.length -1]就是当前的 context 了,然后切换一下:

    yield driver.context(contexts[contexts.length -1];
    
  • 我觉得你这个思路不对:

    • 首先 Python 里 try...except 是用来处理异常的,没看见这个元素怎么能算是异常;
    • 如果是一张长列表,只是下面部分看不见(不知我理解对不对),你用findElementByName()是可以找到该元素,但是无法点击,因为该元素不在可见区域。

    wd 中有个方法是isDisplayed(),可以判断所需元素是否可见,可见则点击,看不见则下滑,以下是个 node 的例子:

    let element, flag = true;
    while(true) {
      element = yield driver.elementByName('客户A').isDisplayed();
      if (element) {
        yield driver.elementByName('客户A').click();
        flag = false;
      } else {
        yield driver.swipe_up();
      }
    }
    
  • ios 的安装包得是 .app格式的

  • Appium 1.6.3 运行问题 at 2017年02月08日

    #7 楼 @wangjl726 😂 我也刚学不久,是个菜鸡,一起学习

  • Appium 1.6.3 运行问题 at 2017年02月07日

    #4 楼 @wxhhxx123 Appium1.6.x 的没有,推荐用 Macaca 的 App Inspector

  • Appium 1.6.3 运行问题 at 2017年02月06日

    使用 XCUITest 启动:

    appium --platform-name iOS --automation-name XCUITest
    
  • #3 楼 @seveniruby
    都是常用的插件:

    • git-plus
    • linter-eslint Atom 颜值就是高😀

我画的不只是萝莉,还是老婆