Webdriver I/O - 获取链接
Webdriver I/O - Get Links
我正在尝试使用 Webdriver I/O 测试网站。
var jasmine = require('jasmine');
var webdriverio = require('webdriverio');
var client = null;
var settings = {
testAbilities: { desiredCapabilities: { browserName: 'phantomjs' } },
};
describe("Test", function() {
it('Should load Successfully', function(done) {
client = webdriverio.remote(settings.testAbilities).init()
.url('http://www.example.com')
.selectorExecute('//a', function(links) {
return links;
}).then(function(links) {
for (var i=0; i<links.length; i++) {
alert(JSON.stringify(links[i]));
}
done();
});
});
运行此测试时,我在 alert
window 中看到以下内容:
{"ELEMENT":"0"}
我期待 link。我如何获得锚标签?我想获得它的位置,以便我可以通过我的自动化测试 "click" 它。
谢谢!
您可以直接使用 click 单击元素并将其传递给您的选择器,无需先检索元素或其位置。如果您的选择器匹配多个元素,将点击第一个。
本例获取所有a
个元素,点击第一个(刚好只有一个)等待某个标题:
var options = {
desiredCapabilities: {
browserName: "phantomjs"
}
};
describe("Test", function() {
it("Should load Successfully", function(done) {
webdriverio
.remote(options)
.init()
.url("http://www.example.com")
.click("a")
.waitUntil(function() {
return this.getTitle().then(function(title) {
return title === "IANA — IANA-managed Reserved Domains";
});
})
.end()
.then(done);
}, 50000);
});
如果您真的想查找 DOM 个元素或直接检索它们的位置,您应该对后者使用 element and elements (or getLocation):
webdriverio
.remote(options)
.init()
.url("http://www.example.com")
.elements("p").then(function(elems){
console.log(elems.value.length + " paragraph elements found");
})
.getLocation("a").then(function(loc){
console.log("link location: " + JSON.stringify(loc));
})
.end();
selectorExecute
更适合执行 javascript 函数,将选择器的结果作为参数传递。
我正在尝试使用 Webdriver I/O 测试网站。
var jasmine = require('jasmine');
var webdriverio = require('webdriverio');
var client = null;
var settings = {
testAbilities: { desiredCapabilities: { browserName: 'phantomjs' } },
};
describe("Test", function() {
it('Should load Successfully', function(done) {
client = webdriverio.remote(settings.testAbilities).init()
.url('http://www.example.com')
.selectorExecute('//a', function(links) {
return links;
}).then(function(links) {
for (var i=0; i<links.length; i++) {
alert(JSON.stringify(links[i]));
}
done();
});
});
运行此测试时,我在 alert
window 中看到以下内容:
{"ELEMENT":"0"}
我期待 link。我如何获得锚标签?我想获得它的位置,以便我可以通过我的自动化测试 "click" 它。
谢谢!
您可以直接使用 click 单击元素并将其传递给您的选择器,无需先检索元素或其位置。如果您的选择器匹配多个元素,将点击第一个。
本例获取所有a
个元素,点击第一个(刚好只有一个)等待某个标题:
var options = {
desiredCapabilities: {
browserName: "phantomjs"
}
};
describe("Test", function() {
it("Should load Successfully", function(done) {
webdriverio
.remote(options)
.init()
.url("http://www.example.com")
.click("a")
.waitUntil(function() {
return this.getTitle().then(function(title) {
return title === "IANA — IANA-managed Reserved Domains";
});
})
.end()
.then(done);
}, 50000);
});
如果您真的想查找 DOM 个元素或直接检索它们的位置,您应该对后者使用 element and elements (or getLocation):
webdriverio
.remote(options)
.init()
.url("http://www.example.com")
.elements("p").then(function(elems){
console.log(elems.value.length + " paragraph elements found");
})
.getLocation("a").then(function(loc){
console.log("link location: " + JSON.stringify(loc));
})
.end();
selectorExecute
更适合执行 javascript 函数,将选择器的结果作为参数传递。