如何在node.js中查找页面上的所有链接?

时间:2014-08-15 01:32:58

标签: javascript node.js selenium-webdriver webdriver

我现在正在研究node.js(webdriver),并且无法理解一些问题。我试图在互联网上搜索,但没有找到我需要的任何例子。 例如,我如何登录来控制页面中的所有链接(例如bing.com)? 我不明白为什么像这样简单的javascript结构

document.getElementsByTagName('a');

无法在node.js中工作。

如果我使用

findElement(webdriver.By.tagName('a'))

我在页面上只有第一个链接,为什么? nodejs中没有的数组?

如果不可能,应使用哪个模块(示例)。目前,我的印象是,即使是简单的功能,也需要额外的模块,因此我的所有第一步都失败了,因为我尝试做了类似javascript的事情。

由于

2 个答案:

答案 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数组的承诺。