【发布时间】:2022-01-31 18:03:15
【问题描述】:
这是我的 HTML 结构:
<div id="divImporte">
<p class="btn01">
<input type="button" name="Enviar Tasas" value="Enviar Tasas">
</p>
</div>
这就是我尝试选择输入的方式:
第一种方式:
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"
我该如何解决?谢谢
【问题讨论】:
-
小心你的“第一种方式”返回一个数组,而
2nd way没有,否则这看起来是正确的。尝试添加{visible: true}作为waitForSelector的第二个参数,以确保它等待元素可见,并尝试在单击带有await page.waitForTimeout(1000)的元素之前添加一些小的延迟,以确保元素已加载 -
嗨@lezhumain 我尝试使用超时和 {visible: true} 作为第二个参数,但我得到了同样的错误。当我在 buttonTasas 中使用 node.warn 时,我得到了这个:
JSHandle@node
标签: javascript node.js selenium puppeteer node-red