单击 WebdriverIO 的链接
Clicking links with WebdriverIO
我有一个要通过 Webdriver I/O 测试的网页。我的问题是,如何通过测试点击几个 link?目前,我有以下内容:
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!');
});
}
})
;
当执行上面的代码时,我得到一个错误,显示 "click is not a function" on link。当我将 link
打印到控制台时,它看起来像 JSON,这是有道理的,因为 documentation 表示元素函数 returns WebElement JSON 对象。不过,我只是想弄清楚如何单击此 link。
如何做到这一点?
谢谢!
你需要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!
你好,你可以直接这样做:
它点击页面上的所有元素 a
var client = webdriverio.remote(settings).init()
.url('http://www.example.com')
.click('a')
.end()
);
你可以选择器来定位特定的 a 元素
示例:
.click("article .search-result .abstract .more")
我有一个要通过 Webdriver I/O 测试的网页。我的问题是,如何通过测试点击几个 link?目前,我有以下内容:
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!');
});
}
})
;
当执行上面的代码时,我得到一个错误,显示 "click is not a function" on link。当我将 link
打印到控制台时,它看起来像 JSON,这是有道理的,因为 documentation 表示元素函数 returns WebElement JSON 对象。不过,我只是想弄清楚如何单击此 link。
如何做到这一点?
谢谢!
你需要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!
你好,你可以直接这样做: 它点击页面上的所有元素 a
var client = webdriverio.remote(settings).init()
.url('http://www.example.com')
.click('a')
.end()
);
你可以选择器来定位特定的 a 元素 示例:
.click("article .search-result .abstract .more")