Я пытаюсь найти элемент по выражению 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
Как я могу это исправить? Что-то я делаю не так?