通过 WebDriver 循环访问链接
Looping through links via WebDriver
我目前正在通过 WebDriver I/O 测试网页。我希望能够 select 几个 link 和 "click" 它们。目前,我有以下内容:
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();
})
;
});
当我执行此测试时,我在控制台中看到以下内容 window:
{ 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' }
我的问题是,我如何"click" link?当我打印出 link 时,我希望看到一个 ID、一个 href、一个 xpath 或某种引用 link 的方式。但我什么也没看到。当我查看 docs 时,他们提到元素作为 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) 进行 E2E 测试。它不需要 Angular,它可以使您的测试生活更轻松。
我目前正在通过 WebDriver I/O 测试网页。我希望能够 select 几个 link 和 "click" 它们。目前,我有以下内容:
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();
})
;
});
当我执行此测试时,我在控制台中看到以下内容 window:
{ 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' }
我的问题是,我如何"click" link?当我打印出 link 时,我希望看到一个 ID、一个 href、一个 xpath 或某种引用 link 的方式。但我什么也没看到。当我查看 docs 时,他们提到元素作为 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) 进行 E2E 测试。它不需要 Angular,它可以使您的测试生活更轻松。