我试图在XPath
库中通过nightmare
表达式查找元素。根据文档,我应该使用评估承诺。
所以我遵循以下条件:
nightmare
.goto('https://google.com')
.wait(1000)
.evaluate((query) => {
return new Promise((resolve, reject) => {
const elem = document.evaluate(query, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
console.log(query);
if (elem == null) {
// Element not found
reject(`element doesn't exist`);
return;
}
// Resolve with the element
resolve(elem);
});
}, '//body')
.then(function(r) {
console.log('Element found:');
console.log(r);
});
它似乎不起作用,因为我在控制台中收到超时错误:
错误:30000毫秒后评估超时。你打完了吗 或兑现诺言? 在J:\ Projects \ Te ... \ lib \ actions.js:634
我该如何解决?我在做错什么吗?