Javascript 木偶演员。单击鼠标悬停而不是单击鼠标

Javascript 木偶演员。单击鼠标悬停而不是单击鼠标,javascript,html,node.js,puppeteer,Javascript,Html,Node.js,Puppeteer,我正在使用Puppeter自动重启我的wifi(Linksys Develop),我似乎无法单击锚定标签来弹出最终对话框 wait page.waitForSelector('.tab部分>#诊断>#重新启动>.block行>.showForNodes',{visible:true}); 等待页面。$eval('.tab部分>#诊断>#重新启动>.block行>.showForNodes',elem=>elem.click()); 单击元素后,锚定标记看起来好像被悬停在上面,带有蓝色下划线。以

我正在使用Puppeter自动重启我的wifi(Linksys Develop),我似乎无法单击锚定标签来弹出最终对话框

wait page.waitForSelector('.tab部分>#诊断>#重新启动>.block行>.showForNodes',{visible:true});
等待页面。$eval('.tab部分>#诊断>#重新启动>.block行>.showForNodes',elem=>elem.click());
单击元素后,锚定标记看起来好像被悬停在上面,带有蓝色下划线。以下是相关的标记:


重新启动
重新启动路由器
重新启动开发系统
我尝试了page.click()和page.eval(),更改了单击次数和单击延迟,但无法使其工作。它不会抛出错误,只是不会单击。所有其他的按钮点击(其中一个是锚定标签)都有效,这只是最后一个。有什么明显的东西我遗漏了吗


谢谢

由于所有可能的点击解决方案都无法点击该元素(即使使用
page.waitForSelector
):作为一种终极黑客,您可以尝试通过强制几毫秒的等待来等待链接变为可点击。它可以用来完成,pptr 5.3.0不推荐使用它,因为它可以使用

wait page.waitFor(4000);
等待页面。$eval('#reboot>.block row>.showForNodes',elem=>elem.click());
木偶演员5.3.0+

wait page.waitForTimeout(4000);
等待页面。$eval('#reboot>.block row>.showForNodes',elem=>elem.click());
(1)如果您通过DevTools控制台运行它,它是否工作:
$(“.tab部分>#诊断>#重新启动>.block行>.showForNodes”)。单击()?(2) 链接不是在一个框架内还是在一个阴影DOM元素中?@theDavidBarton(1)是的,如果我通过devtools运行它(在浏览页面之后)它会工作。我也尝试将它放入
页面。evaluate()
,但它仍然拒绝通过pupeter单击。(2) 不,我看它不在镜框或阴影里。(3) 最大化窗口是否有帮助:
wait-puppeter.launch({headless:false,defaultViewport:null,args:['--start-maximized']})?有时,选择器名称会在视口上更改(无论如何,它无法解释它成功悬停的原因)。(4) 强制等待可能是:
wait page.waitFor(4000)就在单击之前?page.evaluate是一种很好的方法,很抱歉它没有解决您的问题。page.waitFor()有效,谢谢!(如果你回答这个问题,我可以把它作为答案)