【问题标题】:Puppeteer Select Query - How to select this query in Puppeteer?Puppeteer 选择查询 - 如何在 Puppeteer 中选择此查询?
【发布时间】:2020-09-03 03:24:33
【问题描述】:

如何使用 puppeteer 选择此(要单击的 html 锚元素并导航到 Tutorial 页面)查询?

我正在这样做,但它不起作用

const puppeteer = require('puppeteer');
const url = process.argv[2];
if (!url) {
    throw "Please provide URL as a first argument";
}
async function run() {
    const browser = await puppeteer.launch({
        headless: false,
        defaultViewport: null,
        slowMo: 10,
        args: ['--start-maximzed', '--disable-notifications']
    });
    const page = await browser.newPage();
    await page.goto(url);

    await page.waitForSelector(".python-navigation .navigation.menu .tier-1.element-3  a", {
        visible: true
    });
    await page.click(".python-navigation .navigation.menu .tier-1.element-3  a");

    await page.waitForSelector(".documentation-banner .download-buttons ", {
        visible: true
    });
    const elem =  await page.$$('.documentation-banner .download-buttons a');
    await elem[0].click();


    await page.waitForSelector(".contentstable", {
        visible: true
    });
    elem =  await page.$$('.contentstable')[0].$$('tbody')[0].$$('tr')[0].$$('td')[0].$$('p')[1];
    await elem.click();


    await page.pdf({path: 'pdfGenerated.pdf',format:"A4"});

    console.log("Success");
    browser.close();
}
run();

我应该写什么来代替elem = await page.$$('.contentstable')[0].$$('tbody')[0].$$('tr')[0].$$('td')[0].$$('p')[1];这一行?

【问题讨论】:

  • 试试这个:elem = await page.$$('.contentstable tbody tr td p')[1];
  • 它没有用。它没有点击并导航到教程页面。

标签: javascript node.js web-scraping css-selectors puppeteer


【解决方案1】:

点击一个元素,你可以使用这个代码:

await page.click(".contentstable tbody tr td p:nth-child(2) a");

【讨论】:

    猜你喜欢
    • 2019-03-10
    • 2019-08-26
    • 1970-01-01
    • 2020-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多