gpt4 book ai didi

javascript - 为什么将Nightmarejs与async/await一起使用时,我的 promise 为何无法解决?

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

使用最新的nightmarejs版本。当我运行这段代码时,它就冻结了。目标只是获取一个元素,然后查看它是否具有href。

var hasHref = async function(nightmare) {
var selector = '.pagination > ul > li.active + li > a'
try {
var hasHref = await nightmare.evaluate((selector) => {
return document.querySelector(selector).hasAttribute('href')
}, selector)

return hasHref;
} catch(e) {
console.error(e);
nightmare.end()
}
}

const nightmare = Nightmare({ show: true })
nightmare.goto(mysite)
hrefBool = hasHref(nightmare)
console.log(hrefBool)
nightmare.wait(5000).end()

最佳答案

我必须假设您已经正确定义了nightmaremysite。然后,唯一的问题是,如果选择器找不到匹配项,则您将尝试获取NULL的hasAttribute。相反,您可以这样写:

const element = document.querySelector(selector);
return element ? element.hasAttribute('href') : false;

否则,代码对我有用,因此,如果您仍然遇到问题,则可能需要提供一些有关设置的更多详细信息。

关于javascript - 为什么将Nightmarejs与async/await一起使用时,我的 promise 为何无法解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53997089/

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