【问题标题】:Clicking links with WebdriverIO使用 WebdriverIO 单击链接
【发布时间】:2016-01-02 18:36:57
【问题描述】:

我有一个网页,我正在尝试通过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!');
      });
    }
  })
;

执行上述操作时,我收到一条错误消息,指出链接上的“点击不是功能”。当我将link 打印到控制台时,它看起来像JSON,这是有道理的,因为documentation 表示elements 函数返回WebElement JSON 对象。不过,我只是想弄清楚如何单击此链接。

如何做到这一点?

谢谢!

【问题讨论】:

  • 通过选择器和click 方法找到你的元素怎么样? client.click('a', function(err,res) {...})
  • @Valijon 这种方法只会点击第一个链接。它不会点击每个链接。
  • 如果您需要点击带有“目的”的一对链接,请为该链接设置classid 属性。然后,通过选择器"#some_id", "a.some_class" 单击它们。在我们的项目中,我们使用 Selenium for Java,并且我们会客观地点击,例如登录、注销、主页、第二页等...

标签: javascript node.js webdriver-io


【解决方案1】:

你需要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!');
      });
    }
  });

以上代码的结果将是

Clicking link... Link clicked!

【讨论】:

    【解决方案2】:

    你好,你可以直接这样做: 它点击页面上的所有元素a

    var client = webdriverio.remote(settings).init()
      .url('http://www.example.com')
      .click('a')
      .end()
    );
    

    你可以选择一个选择器来定位特定的元素 示例:

    .click("article .search-result .abstract .more")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-20
      相关资源
      最近更新 更多