Jag*_*web 3 javascript selenium node.js node-red puppeteer
这是我的 HTML 结构:
<div id="divImporte">
<p class="btn01">
<input type="button" name="Enviar Tasas" value="Enviar Tasas">
</p>
</div>
Run Code Online (Sandbox Code Playgroud)
这就是我尝试选择输入的方式:
第一种方式:
const buttonTasas = await page.$$("input[type='button'][value='Enviar Tasas']");
Run Code Online (Sandbox Code Playgroud)
第二种方式:
const buttonTasas = await page.waitForSelector("input[type='button'][value='Enviar Tasas']");
Run Code Online (Sandbox Code Playgroud)
然后点击它:
if (buttonTasas && buttonTasas.length > 0) {
await buttonTasas[0].click();
}
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
"Error: Node is either not clickable or not an HTMLElement"
Run Code Online (Sandbox Code Playgroud)
我该如何解决?谢谢
有时puppeteer只是由于某种原因无法单击,因此在仔细检查该值buttonTasas不为空并尝试在调用该方法之前添加一些延迟后click(),您可以尝试以下解决方法直接在页面中调用单击函数:
使用page.evaluate(https://pptr.dev/api/puppeteer.page.evaluate):
page.evaluate((btnSelector) => {
// this executes in the page
document.querySelector(btnSelector).click();
}, "input[type='button'][value='Enviar Tasas']");
Run Code Online (Sandbox Code Playgroud)
或者你可以直接使用该元素:
page.evaluate((btn) => {
// this executes in the page
btn.click();
}, buttonTasas);
Run Code Online (Sandbox Code Playgroud)
使用page.$eval(https://pptr.dev/api/puppeteer.page._eval):
await page.$eval(
'input[type='button'][value='Enviar Tasas']',
(el) => {
el.click()
}
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7652 次 |
| 最近记录: |