【问题标题】:Javascript Puppeteer - Not able to get html content after page redirect to new page in ASP.net SPA websiteJavascript Puppeteer - 页面重定向到 ASP.net SPA 网站中的新页面后无法获取 html 内容
【发布时间】:2021-08-10 17:09:07
【问题描述】:

首先,感谢您的宝贵时间。

我正在尝试制作 RPA,以检索网站中的一些报告。

基本上工作流程如下:

  1. 转到网页 >>
  2. 点击按钮跳转到第二页>>
  3. 单击按钮重定向到第三页 (asp.net SPA) >>
  4. 我需要点击几个按钮来提取我需要的报告,但所有这些点击都在应用程序的主页中 (url = "https://cav.receita.fazenda.gov.br/ecac/ #") >>
  5. 最后:点击按钮重定向到第四页(url = "https://cav.receita.fazenda.gov.br/ecac/Aplicacao.aspx?id=2&origem=menu")>>

直到这里都没有问题,我只需单击一个按钮即可下载 pdf 报告。

但问题是页面已完全加载到浏览器中,但我没有设法执行点击操作。

经过一些调试,我发现我为第 4 页获取的 page.content() 与第 3 页相同,但它们是完全不同的页面。换句话说,page.content() 没有更新到新的重定向页面。

因此,当我尝试执行单击时,由于元素不存在,它给了我一个错误,即没有找到与选择器匹配的错误。

要执行点击转到第 4 页,代码如下:

let beVisible = {
  visible: true,
  timeout: 0,
};
let consultPendencyBtn =
      '#containerServicos271>.dontsplit>.lista-comum>.showTooltip:nth-child(3)>a';
await page.waitForSelector(consultPendencyBtn, beVisible);
await page.click(consultPendencyBtn);

当我尝试使用此代码获取浏览器页面时:

let browserPages = await browser.pages()
console.log(await browserPages[....].content())`

在索引 0 中我得到:

<html><head></head><body></body></html>

在索引 1 中,我得到了第 3 页 html,并且没有更多页面了。

我试图等待选择器,等到完全加载,等待 30000 毫秒的超时。 但即使页面已完全加载到浏览器中,我也无法使用 puppeteer 页面操作第 4 页。

打开第一页的代码:

const browser = await puppeteer.launch({ headless: false });
const page = await browser.newPage();
await page.goto(`https://cav.receita.fazenda.gov.br/autenticacao/login`);

你们有什么建议吗?

【问题讨论】:

    标签: javascript node.js puppeteer


    【解决方案1】:

    终于设法发现 html 是在 iframe 中呈现的。

    如果您遇到同样的问题,解决方案就是使用:

    const frame = await page.frames().find((frame) => {
      let wantedFrameName = 'abc',
      return frame.name === wantedFrameName
    })
    
    await frame.waitForSelector('#selectorABC')
    await frame.$('#selectorABC').click()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-31
      • 1970-01-01
      • 2017-11-03
      相关资源
      最近更新 更多