通过WebDriver循环链接
Looping through links via WebDriver
我目前正在通过WebDriver I/O测试一个网页。我希望能够选择一对夫妇的链接和"点击"他们。目前,我有以下内容:
it('Should click links', function(done) {
client
.elements('a').then(function(links) {
console.log(links);
console.log('---------');
for (var i=0; i<links.value.length; i++) {
client.getAttribute(links.value[i].ELEMENT)
}
expect(true).toBe(true);
done();
})
;
});
当我执行这个测试时,我在控制台窗口中看到以下内容:
{ state: 'success',
sessionId: '85d25e09-13d8-475a-81b6-87431d2d8f3c',
hCode: 1234567890,
value:
[ { ELEMENT: '0' },
{ ELEMENT: '1' },
{ ELEMENT: '2' } ],
class: 'org.openqa.selenium.remote.Response',
status: 0 }
---------
{ ELEMENT: '0' }
{ ELEMENT: '1' }
{ ELEMENT: '2' }
我的问题是,我如何"点击"链接?当我打印出链接时,我期望看到一个ID、一个href、一个xpath或某种引用链接的方式。但是我什么也没看到。当我查看文档时,它们提到元素作为WebElement JSON对象返回。然而,我似乎找不到任何关于WebElement的文档。
我错过了什么?
告诉它点击元素,就像文档中说的那样:http://webdriver.io/api/action/click.html
在您的例子中,代码类似于:
it('Should click links', function(done) {
client
.elements('a').then(function(links) {
console.log(links);
console.log('---------');
for (var i=0; i<links.value.length; i++) {
client.click(links[i])
}
expect(true).toBe(true);
done();
})
;
});
您的代码可能会有所不同,但这应该是您的开始。现在,有几个要点:
1)您应该避免在一个测试中有多个断言。它违反了OAPT,并且可能使您的测试在失败时更难发现。
2)您可以查看Protractor (http://www.protractortest.org)进行端到端测试。它不需要Angular,而且可以让你的测试生活变得轻松很多。
相关文章:
- Jquery循环洗涤器插件:添加到图像的链接
- 每次点击链接后$.ajax()获取循环
- javascript替换url链接循环
- JQuerywrap()函数只在第一次循环时正确地将链接包装在图像周围
- 从 foreach 循环链接承诺
- 链接在webdriver.io中的while循环中承诺
- JavaScript:将onclick附加到“while”循环中的链接
- 使来自 GetJson 数组的循环数据成为链接
- 循环访问链接对象,如何避免重复
- CasperJs:单击循环中的链接以打开模式弹出窗口
- 如何在循环中.js延迟链接多个过滤器(从数组)
- 循环遍历元素并根据链接属性进行更改
- 在自定义的 for-each 循环中链接回调,同时支持同步和异步函数
- javascript中的递归循环,基于链接单击的增量
- 如何在jQuery中将计时器与无限循环链接
- 在具有固定链尾调用的循环中链接jquery.when().then()
- Django链接无法在for循环中工作
- JavaScript链接承诺来自for循环中的LocalForage
- 图像加载器在循环中的链接中只工作一次
- 打开链接循环- JavaScript