我现在正在研究node.js(webdriver),并且无法理解一些问题。我试图在互联网上搜索,但没有找到我需要的任何例子。 例如,我如何登录来控制页面中的所有链接(例如bing.com)? 我不明白为什么像这样简单的javascript结构
document.getElementsByTagName('a');
无法在node.js中工作。
如果我使用
findElement(webdriver.By.tagName('a'))
我在页面上只有第一个链接,为什么? nodejs中没有的数组?
如果不可能,应使用哪个模块(示例)。目前,我的印象是,即使是简单的功能,也需要额外的模块,因此我的所有第一步都失败了,因为我尝试做了类似javascript的事情。
由于
答案 0 :(得分:2)
我已在我的问题上找到答案并在本主题中回答Click on random link via node.js and webdriver
代码示例(感谢Nguyen Vu Hoang)
driver.findElements(webdriver.By.tagName("a")).then(function(elems){
elems.forEach(function (elem) {
elem.getText().then(function(textValue){
console.log(textValue);
});
});
});
答案 1 :(得分:0)
请documentation关于findElements
findElements ( locator ) ⇒ !webdriver.promise.Promise
计划命令以查找与给定搜索条件匹配的此元素的所有后代。 的参数强>
locator: !(webdriver.Locator|webdriver.By.Hash|Function)
搜索元素时使用的定位器策略。
<强>返回强>
将解析为WebElements数组的承诺。