gpt4 book ai didi

javascript - 如何使用Nightmare.js JavaScript转到URL数组

转载 作者:行者123 更新时间:2023-12-03 13:23:58 25 4
gpt4 key购买 nike

我正在返回URLs数组。我如何遍历数组并使用 goto()函数,您转到每个URL并执行代码,然后关闭并执行下一个?

这是我的代码:

var Nightmare = require('nightmare');
var vo = require('vo');

vo(function*() {
var nightmare = Nightmare();
var title = yield nightmare
.goto('https://www.example.com/l/los_angeles-california')
.inject('js', `node_modules/jquery/dist/jquery.js`)
.evaluate(function() {
var hrefs = [];
$('.ItemsListCard').find('a').each(function() {
hrefs.push($(this).attr('href'));
});

return hrefs //array of urls

for (var i = 0; i < hrefs.length; i++) {
nightmare.goto(hrefs[i].href)
.wait(5000)
.click('.ItemListingActionButtons')
.type('.ThreadViewInput__input', 'Hey! ')
.click('.ThreadViewInput__send')
}

});
console.log(title);
yield nightmare.end();

})(function(err, result) {
if (err) return console.log(err);
});

最佳答案

请注意,您要求Nightmare在浏览器上下文中执行的代码(通过.execute())与您在nodejs的 Controller 中运行的代码之间存在差异。您在这里有一个正确的想法,但是在返回hrefs之后,用于迭代它们的其余代码应该在 Controller 中,如下所示:

const hrefs = yield nightmare
.goto('https://www.example.com/l/los_angeles-california')
.inject('js', `node_modules/jquery/dist/jquery.js`)
.evaluate(function() {
var hrefs = [];
$('.ItemsListCard').find('a').each(function() {
hrefs.push($(this).attr('href'));
});

return hrefs; //array of urls
});
for (var i = 0; i < hrefs.length; i++) {
yield nightmare.goto(hrefs[i].href)
.wait(5000)
.click('.ItemListingActionButtons')
.type('.ThreadViewInput__input', 'Hey! ')
.click('.ThreadViewInput__send');
}

关于javascript - 如何使用Nightmare.js JavaScript转到URL数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47425661/

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