Puppeteer XPATH выражение для журнала консоли - PullRequest
0 голосов
/ 11 марта 2020

У меня проблема. :( Chrome -console-result

const xpath_expression = '//*[@id="header"]/div/ul/li/a/@href';

Приведенный выше результат появляется на экране. Я не могу увидеть результаты этого href на консоли, поэтому я не вижу :(

Код кукловода:

wait page.goto('https://www.sitelink.com', { waitUntil: 'networkidle2' })
var title = await page.$x("//*[@id='header']/div/ul/li/a/@href");
console.log(title);

Неудачный результат

кукловод безуспешного результата

Ответы [ 2 ]

0 голосов
/ 11 марта 2020

Попробуйте page.waitForXPath () или page.waitForSelector () для ожидания элемента на странице:

await page.waitForXPath(xpath_selector);
0 голосов
/ 11 марта 2020

Отправленный вами XPath ничего не возвращает. Что касается структуры размещенного вами XPath, похоже, вы искали что-то вроде этого:

//*[@id="mainMenu"]/div/ul/li/a/@href

Код кукловода (кредиты Гранту Миллеру за большую часть кода { ссылка } ):

const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://www.sitelink.com');
const xpath_expression = '//*[@id="mainMenu"]/div/ul/li/a';
await page.waitForXPath(xpath_expression);
const links = await page.$x(xpath_expression);
const hrefs = await page.evaluate((...links) => {
 return links.map(a => a.href);
}, ...links);
console.log(hrefs);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...