Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.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:page.evaluate在waitForNavigation后不工作,调试在page.evaluate内不工作用于文档_Javascript_Node.js_Puppeteer_Document - Fatal编程技术网

Javascript Puppeter:page.evaluate在waitForNavigation后不工作,调试在page.evaluate内不工作用于文档

Javascript Puppeter:page.evaluate在waitForNavigation后不工作,调试在page.evaluate内不工作用于文档,javascript,node.js,puppeteer,document,Javascript,Node.js,Puppeteer,Document,我可以使用puppeter导航到某个页面,但之后页面将不会返回任何响应。此外,我无法在页面内进行调试。请评估。我在调试模式下运行脚本(node debug filename.js),使用sb(15)在第15行设置断点,按c继续,等待页面加载,然后输入“repl”。现在,当我尝试调试时,它会说文档未定义。我如何解决这两个问题 const puppeteer = require('puppeteer'); (async function scrape() { const browser = a

我可以使用
puppeter
导航到某个页面,但之后
页面将不会返回任何响应。此外,我无法在
页面内进行调试。请评估
。我在调试模式下运行脚本(
node debug filename.js
),使用
sb(15)
在第15行设置断点,按
c
继续,等待页面加载,然后输入“repl”。现在,当我尝试调试时,它会说
文档未定义
。我如何解决这两个问题

const puppeteer = require('puppeteer');

(async function scrape() {
  const browser = await puppeteer.launch({headless: false});
  const page = await browser.newPage();
  page.setDefaultNavigationTimeout(90000);
  const url = "https://excise.wb.gov.in/CHMS/Public/Page/CHMS_Public_Hospital_Bed_Availability.aspx";
  await page.goto(url, {waitUntil: 'networkidle2', timeout: 0});
  await page.waitForSelector('#ctl00_ContentPlaceHolder1_ddl_District');
  await page.select('#ctl00_ContentPlaceHolder1_ddl_District', '020');
  await page.waitForNavigation();
  let beds = await page.evaluate(() => {
    let dataRows = document.body.querySelectorAll("tbody tr");
    console.log("Num entires == " + dataRows.length);
  });
  await browser.close();
})();

选择城市不会导致URL更改,这是需要等待的

当页面导航到一个新的URL或重新加载时,就会解决这个问题

它永远不会发生,因此您的代码不会继续

您可能正在寻找:

/。。。
等待页面。选择(“#ctl00_内容占位符1_ddl_地区”,“020”);
wait page.waitForSelector('tbody tr');
让床=等待页面。评估(()=>{
让dataRows=document.body.querySelectorAll('tbody tr');
返回[…dataRows].map(row=>row.querySelector('h5').textContent);
});
控制台。原木(床);
等待浏览器关闭();

console.log
是否在页面内部工作。eval?它在浏览器控制台内部工作,但不在终端中。如果它在浏览器控制台中工作,这也很有用。但是我如何调试代码,因为打印日志并不一定每次都有助于调试。您可以使用浏览器的调试器。添加启动浏览器时自动打开devtools的选项:
puppeter.launch({headless:false,args:['--auto open devtools for tabs']})
并在
页面内。评估
,添加
调试器语句,您希望在其中暂停代码,以便检查变量是否在
console.log
页面内工作。eval?如何调试其中的语句?@vipin8169尝试捕获日志并在节点中显示它们。