木偶引发“节点不可见..."错误. [英] Puppeteer throws error with "Node not visible..."

查看:41
本文介绍了木偶引发“节点不可见..."错误.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我使用操纵up打开此页面并尝试单击该元素时,如果预期可以单击该元素,则会引发错误.

When I open this page with puppeteer, and try to click the element, it throws an Error when it is expected to be possible to click the element.

const puppeteer = require('puppeteer');
const url = "https://www.zapimoveis.com.br/venda/apartamentos/rj+rio-de-janeiro/";

async function run() {
  const browser = await puppeteer.launch({ headless: false });
  const page = await browser.newPage();
  await page.goto(url, {waitUntil: 'load'});

  const nextPageSelector = "#list > div.pagination > #proximaPagina";
  await page.waitForSelector(nextPageSelector, {visible: true})
  console.log("Found the button");
  await page.click(nextPageSelector)
  console.log('clicked');
}

run();

推荐答案

这是您的代码的有效版本.

Here's a working version of your code.

const puppeteer = require('puppeteer');
const url = "https://www.zapimoveis.com.br/venda/apartamentos/rj+rio-de-janeiro/";

async function run() {
  const browser = await puppeteer.launch({ headless: false });
  const page = await browser.newPage();
  await page.goto(url);

  const nextPageSelector = "#list > div.pagination > #proximaPagina";
  console.log("Found the button");

  await page.evaluate(selector=>{
      return document.querySelector(selector).click();
  },nextPageSelector)
  console.log('clicked');
}

run();

我个人更喜欢使用page.evaluate,因为page.click在某些情况下也不适合我,您可以直接在页面上执行任何js.

I personally prefer to use page.evaluate, as page.click doesn't work for me neither in some cases and you can execute whatever js on the page directly.

唯一要知道的是语法:-第一个参数:要执行的功能-第二个参数:要传递给此函数的变量

The only thing to know is the syntax : - first param : function to execute - second param : the variable(s) to be passed to this function

这篇关于木偶引发“节点不可见..."错误.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆