gpt4 book ai didi

javascript - Webdriver I/O - 获取链接

转载 作者:行者123 更新时间:2023-11-28 06:41:50 25 4
gpt4 key购买 nike

我正在尝试使用 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 窗口中看到以下内容:

{"ELEMENT":"0"}

我期待一个链接。如何获得 anchor 标签?我想获取它的位置,以便我可以通过我的自动化测试“点击”它。

谢谢!

最佳答案

您可以使用 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 元素或直接检索它们的位置,您应该使用 elementelements (或 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 函数,将选择器的结果作为参数传递。

关于javascript - Webdriver I/O - 获取链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33723105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com