Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Puppeter-页面重定向到ASP.net SPA网站中的新页面后无法获取html内容_Javascript_Node.js_Puppeteer - Fatal编程技术网

Javascript Puppeter-页面重定向到ASP.net SPA网站中的新页面后无法获取html内容

Javascript Puppeter-页面重定向到ASP.net SPA网站中的新页面后无法获取html内容,javascript,node.js,puppeteer,Javascript,Node.js,Puppeteer,首先,谢谢你抽出时间 我试图做一个RPA,在一个网站上检索一些报告 工作流程基本上如下所示: 转到网页>> 单击要重定向到第二页的按钮>> 单击要重定向到第三页的按钮(asp.net SPA)>> 我需要点击几个按钮来提取我需要的报告,但所有这些点击都在应用程序的主页面上(url=”https://cav.receita.fazenda.gov.br/ecac/#”>> 最后:点击一个按钮重定向到第四页(url=”https://cav.receita.fazenda.gov.br/ecac/A

首先,谢谢你抽出时间

我试图做一个RPA,在一个网站上检索一些报告

工作流程基本上如下所示:

  • 转到网页>>
  • 单击要重定向到第二页的按钮>>
  • 单击要重定向到第三页的按钮(asp.net SPA)>>
  • 我需要点击几个按钮来提取我需要的报告,但所有这些点击都在应用程序的主页面上(url=”https://cav.receita.fazenda.gov.br/ecac/#”>>
  • 最后:点击一个按钮重定向到第四页(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>
    

    你们有什么建议吗?

    终于发现html是在iframe中呈现的

    如果您面临同样的问题,解决方法是使用:

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