【问题标题】:headless mode playwright not working as inteded无头模式剧作家没有按预期工作
【发布时间】:2022-06-22 18:52:27
【问题描述】:

嗨,当我在无头模式下使用 playwright 开始抓取代码时,我的代码有问题:当我到达 waitfornavitagion 以登录程序时为真,程序停止工作,我不知道为什么启动它时在无头模式下:假;我没有错误地到达我的最终目的地。 这是我的代码:

function ashScraping() {
  (async () => {
    const browser = await chromium.launch({
      headless: false,
      slowmo: 300,
      timeout: 70000,
      acceptDownloads: true,
    });
    const context = await browser.newContext();
    const page = await context.newPage();
    await page.goto('https://www.thePageImUsing.com/login');
    await page.locator('input[name="txtUserID"]').click();
    await page.locator('input[name="txtUserID"]').fill(`${user}`);
    await page.locator('input[name="txtPassword"]').click();
    await page.locator('input[name="txtPassword"]').fill(`${cont}`);
    await Promise.all([
      page.waitForNavigation(/*{ url: 'https://home.thePageImUsing.com' }*/),
      page.locator('text=login').click()
    ]);
    const [page1] = await Promise.all([
      page.waitForEvent('popup'),
      page.locator('something..something').click()
    ]);
    await page1.locator('input[name="txtShpno"]').click();
    await page1.locator('input[name="txtShpno"]').fill(`${bodega}`);
    await page1.locator('input:has-text("Buscar")').click();
    await Promise.all([
      page.waitForNavigation(/*{ url: 'home.thePageImUsing.com' }*/),
    ]);
    await page.locator('text=Artículos').click();
    await page.locator('text=Artículos').click();
    await page.locator('text=Artículos').click();
    await page.locator('text=Programa de clientes').click();
    await page.locator('#rdoWarehouse_0').check();
    await page.locator('#rdoAvailability_2').check();
    const [download] = await Promise.all([
      page.waitForEvent('download'),
      page.on('dialog', dialog => dialog.accept()),
      await page.locator('#cmdExport').click(),
    ]);
    const path = download.suggestedFilename();
    await download.saveAs(path);
    await context.close();
    await browser.close();
  })();
};

ashScraping();

所以我出于隐私原因修改了代码的某些部分,但上下文是相同的。我欢迎任何可以指出错误的答案。

现在当我以无头模式启动软件时:是的,这是错误:

line 23: waitfornavigation: timeout.

【问题讨论】:

    标签: javascript node.js playwright


    【解决方案1】:

    您可以检查而不是等待导航: S1:点击网址 S2:在下一页使用等待选择器检查任何元素....

    await Promise.all([
        page.click('.ffwHVz'),
        page.waitForSelector('.icon-User-Filled'),
      ]);
    

    【讨论】:

      猜你喜欢
      • 2022-12-24
      • 2022-07-18
      • 1970-01-01
      • 2015-09-14
      • 1970-01-01
      • 2022-11-15
      • 2018-09-11
      • 2012-04-25
      • 2019-08-08
      相关资源
      最近更新 更多