【问题标题】:How to do scroll on iOS native app with webdriver.io?如何使用 webdriver.io 在 iOS 本机应用程序上滚动?
【发布时间】:2017-07-28 04:00:55
【问题描述】:

我正在尝试使用 webdriver.io 框架在 iOS 本机应用程序上滚动。 我正在使用这个 API: browser.touchAction({ 动作:'moveTo',x:1,y:2 });

出现错误:尚未实施。还有其他滚动方式吗?

【问题讨论】:

  • 你能检查你使用的java客户端版本吗?可能是该功能已被弃用
  • @sai 不是java,是JS

标签: selenium-webdriver appium webdriver-io


【解决方案1】:

我认为您使用了错误的 api 点。根据 webdriver.io 网站上的 api 文档,您应该使用 browser.touchScroll(id,xoffset,yoffset);

你可以在这里查看http://webdriver.io/api/protocol/touchScroll.html#description

【讨论】:

  • touchScroll 不好用,需要使用 touchAction 来滚动。谢谢
【解决方案2】:

答案:

browser.touchAction([{action: 'press', x: 10, y: firstY}, { action: 'moveTo', x: 10, y: secondY }, 'release'])

【讨论】:

  • 我的新闻最终点击了一个按钮,而不是执行 moveTo 操作。你曾经必须克服它吗? @mike_dz
【解决方案3】:

想让您知道,内置滚动方法已从 appium 版本 1.3+ 中弃用

Now you can use swipe method
browser.swipe([selector][,xoffset][,yoffset][,speed]);

选择器是元素

xoffset - 相对 x 坐标

yoffset-相对y坐标

速度 - 应该执行的操作以毫秒为单位

【讨论】:

    【解决方案4】:

    使用此命令滚动:

    client.execute("mobile: scroll", {direction: 'down'})
    

    【讨论】:

      【解决方案5】:
      browser.touchAction([
        { action: 'press', x: 1000, y: 1000 },
        { action: 'moveTo', x: 1000, y: -10000 },
        'release'
      ]);
      

      使用 y = -ve 值向下滚动。

      【讨论】:

        【解决方案6】:

        browser.execute('mobile:scroll', {direction:down});

        参考: https://appium.readthedocs.io/en/latest/en/commands/mobile-command

        或者还有一个解决方法命令可以滚动到指定的选择器。

        browser.getLocation(选择器);

        选择器可以是 xpath /css 选择器

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-05-04
          • 2015-08-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多