我试图废弃由AJAX 生成的网页。在<div class='main'>
内的网页上有几个<a class='classLinks'>
元素,点击其中一个元素后,在同一个<div class='main'>
和<a class='classLinks'>
元素中生成的内容将替换为一个<a class='back'>
元素1}}后退按钮。
我的任务是在点击<a class='classLinks'>
内的所有<div class='main'>
元素后获取内容并将其写入控制台日志。
我将所有<a class='classLinks'>
放入选择器数组,但问题是我不知道如何在.click, .wait, .evaluate., .click
周期内运行序列“for
”。
步骤是:
goto http://example.com
click on subpage
get all "a" elements
content = ""
for (i=0; i < a.lenght; i++)
{
click on a[i]
content = content + div.innerHTML;
click on "a.back"
}
console.log content;
我的代码看起来:
var content
nightmare
.goto('http://example.com')
.wait('.firstpage')
.click('a.subpage')
.wait('.main')
.evaluate(function(){
var links = document.querySelectorAll('a.classLinks');
for (i = 0; i < links.length; ++i) {
links[i].click();
// now i need to wait for <div class='main'>
.wait('.main')
// and do evaluate again
.evaluate(function(){
//content is glogal variable
content = content + document.querySelector('div.main').innerHTML;
// and click on 'back' link becaus all a.classLinks disappeared
document.querySelector('a.back').click();
})
})
return content;
.end()
.then(function(content) {
console.log(content);
})
请如何处理噩梦中的循环内的多个评估?