单击与WebdriverIO的链接

JQu*_*ile 0 javascript node.js webdriver-io

我有一个网页,我试图通过Webdriver I/O进行测试.我的问题是,如何通过测试点击几个链接?目前,我有以下内容:

var webdriverio = require('webdriverio');
var client = webdriverio.remote(settings).init()
  .url('http://www.example.com')
  .elements('a')
  .then(function(links) {
    for (var i=0; i<links.value.length; i++) {
      console.log('Clicking link...');
      var link = links.value[i].ELEMENT;
      link.click().then(function(result) {
        console.log('Link clicked!');
      });
    }
  })
;
Run Code Online (Sandbox Code Playgroud)

执行上述操作后,我在链接上收到"click is not a function"的错误消息.当我打印link到控制台时,它看起来像JSON,这是有意义的,因为文档说元素函数返回WebElement JSON对象.不过,我只想弄清楚如何点击此链接.

如何做到这一点?

谢谢!

Mar*_*yan 5

你需要elementIdClick http://webdriver.io/api/protocol/elementIdClick.html

这是一个例子

var settings = {
  desiredCapabilities: {
    browserName: 'firefox',
  },
};

var webdriverio = require('webdriverio');
var client = webdriverio.remote(settings).init()
  .url('http://www.example.com')
  .elements('a')
  .then(function(links) {
    for (var i=0; i<links.value.length; i++) {
      console.log('Clicking link...');
      var link = links.value[i].ELEMENT;
      client.elementIdClick(link).then(function(result) {
        console.log('Link clicked!');
      });
    }
  });
Run Code Online (Sandbox Code Playgroud)

上面代码的结果将是

Clicking link... Link clicked!