如何在Appium / webdriver-io中使用两指缩放

时间:2018-12-12 17:55:13

标签: appium webdriver-io appium-android

我是移动自动化的新手,但一般来说都不是自动化的(与网络合作)。我正在建立一个需要两指变焦的自动化系统。我已经浏览过文档,试图找到一种解决方案,但是找不到。有Multi-Touch,但用词不当是因为它似乎只能快速连续地用一根手指实现许多不同的触摸。像这样的东西似乎不起作用:

client.touchMultiPerform([
  [{ action: 'press', options: { x: 300, y: 100 } },
   { action: 'moveTo', options: { x: 100, y: 100 } },
   { action: 'release' },
  ],
  [{ action: 'press', options: { x: 330, y: 100 } },
   { action: 'moveTo', options: { x: 400, y: 100 } },
   { action: 'release' },
  ],
]);

这将执行第一个触摸动作,然后执行第二个触摸动作。有没有一种方法可以做到这一点?也许是插件?还是我只是不了解一个非常简单的解决方案?

这是我所构建内容的更完整示例:

var webdriverio = require('webdriverio');
var expect = require('chai').expect;
var config = require('./helpers/desiredCapabilities').options;
var client = webdriverio.remote(config);


describe('Android Script Testing', function () {

 before(function () {
     this.timeout(5000);
     return client.init();
 });

 afterEach(function(){
     this.timeout(5000);
 });

 it("should just click on things",async function(){
     this.timeout(0);
     client.click("#selectRegionButton")

     client.waitForVisible("#Account", 5000).click("#Account");

     client.touchAction(
         [
           [{ action: 'press', options: { x: 300, y: 100 } },
           { action: 'moveTo', options: { x: 100, y: 100 } },
           { action: 'release' }],
           [{ action: 'press', options: { x: 330, y: 100 } },
           { action: 'moveTo', options: { x: 400, y: 100 } },
           { action: 'release' }],
         ]);

  });
});

1 个答案:

答案 0 :(得分:0)

我不确定您在此处使用的是Appium,但是如果使用的是Appium,则缩放和缩放仅在具有所需功能的Espresso自动化名称下有效。

已被确认here,并且在Appium Java绑定中使用Espresso自动化名称也进行了相同的测试。

尝试使用相同的自动化名称,您的代码应该可以使用。

此外,您在代码中使用了client.touchAction,而不是client.touchMultiPerform