gpt4 book ai didi

javascript - Nightmare js中对动态选中元素列表进行连续点击操作

转载 作者:行者123 更新时间:2023-12-03 05:40:32 34 4
gpt4 key购买 nike

我刚刚开始使用 Nightmare 。我在我的网页上使用它用于测试目的。

我有以下用户界面。

menu

tab1 | tab2 | tab3 ......(dynamically generated tabs)

container div for selected tab

       selected tab data

我得到了包含菜单的 dom 元素。

我不知道如何点击每个选项卡并获取所选选项卡的数据。

阅读文档后我无法弄清楚这一点,也没有任何示例。

我只能做到这一点 -

var Nightmare = require('nightmare');
var nightmare = Nightmare({ show: true });

nightmare
.goto('http://www.example.com')
.wait('#menu')
.evaluate(function () {
var menuDiv = document.querySelector('div#menu.content-disp');
var menuAnchors = menuDiv.querySelectorAll('a[href]');

var res = "";
for(var i =0;i<menuAnchors.length;i++){
res+=menuAnchors[i].innerText;
}

return res;
})
.end()
.then(function (result) {
console.log(result)
})
.catch(function (error) {
console.error('Search failed:', error);
});

我正在使用 Nightmare 版本

"dependencies": {
"nightmare": "^2.8.1"
}

最佳答案

构建 anchor 列表后,您需要迭代它们,这对于 Promises 来说是一项艰巨的任务。考虑以下内容,它会迭代您的结果并获取每个页面的标题:

nightmare.then((result) => 
result.reduce(function(accumulator, url) {
return accumulator.then(function(results) {
return nightmare.goto(url)
.wait('body')
.title()
.then(function(result){
results.push(result);
return results;
});
});
}, Promise.resolve([])).then(function(results){
console.dir(results);
});

您可能想要给予 "Asynchronous Operations and Loops" at nightmare-examples一读。这应该可以帮助您入门。

关于javascript - Nightmare js中对动态选中元素列表进行连续点击操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40554485/

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