"Error: Node is either not clickable or not an HTMLElement" Puppeteer when i tried to get input by name

"Error: Node is either not clickable or not an HTMLElement" Puppeteer when i tried to get input by name

这是我的 HTML 结构:

<div id="divImporte">
  <p class="btn01">
    <input type="button" name="Enviar Tasas" value="Enviar Tasas">
  </p>
</div>

这就是我尝试 select 输入的方式:

第一种方式:

const buttonTasas = await page.$$("input[type='button'][value='Enviar Tasas']");

第二种方式:

const buttonTasas = await page.waitForSelector("input[type='button'][value='Enviar Tasas']");

然后点击它:

if (buttonTasas && buttonTasas.length > 0) {
  await buttonTasas[0].click();
}

我收到这个错误:

"Error: Node is either not clickable or not an HTMLElement"

我该如何解决?谢谢

有时 puppeteer 由于某种原因无法点击,所以在仔细检查 buttonTasas 不为 null 并尝试在调用 click() 方法之前添加一些延迟之后,您可以尝试以下解决方法直接在页面调用点击功能:

page.evaluate((btnSelector) => {
    // this executes in the page
    document.querySelector(btnSelector).click();
}, "input[type='button'][value='Enviar Tasas']");

或者您可以直接使用该元素:

page.evaluate((btn) => {
    // this executes in the page
    btn.click();
}, buttonTasas);

UI 浏览器工具通常有空格问题。尝试使用不带任何空格或换行符的表达式搜索元素。您可以使用 *= in CSS 表达式在字符串中查找单词:

await page.$$("input[type='button'][value*='Enviar']");

await page.$$("input[type='button'][value*='Enviar'][value*='Tasas']");