.click() 方法无法识别
Posted
技术标签:
【中文标题】.click() 方法无法识别【英文标题】:.click() method not recognised 【发布时间】:2021-11-21 19:09:12 【问题描述】:现在我正在为我最喜欢的一款浏览器游戏 Big Barn World 创建另一个版本的机器人。我尝试在一个元素上使用.click()
来浇灌一种不起作用的作物。我尝试将 EventListener 添加到我正在使用 .click()
的节点上。这很好用,但网站本身并没有对此做出反应。在以前的版本中,我使用 http 请求或鼠标自动化,两者都很慢且不一致。我正在寻找一种不同的方法来“单击”网页上的按钮。如果你能告诉我什么可能会阻止.click()
工作,我会很高兴,这样我就可以做进一步的研究。我将 C#/JS 与 EO.WebBrowser 一起使用。
这是我正在运行的 JS 代码。
document.getElementById('s_0_0').click();
我在 chrome 开发控制台中尝试了这个并手动单击了按钮。如果我手动单击一切正常。如前所述,EventListener 可以识别我的.click()
-call,但网站本身不会做任何事情。
开发控制台返回“未定义”。
我试图点击的元素。
<div class="sector s_0_0" id="s_0_0" style="background-image: url("https://static.airg.ca/games/bbw/fieldplot/200/200/png"); width: 20%; padding-bottom: 20%;">
<div class="overlay itemImage " style="background-image: url(https://static.airg.ca/games/bbw/WheatSeeds_seeded/200/200/png)"></div>
<div class="overlay status water" style="background-image: url("https://static.airg.ca/bbw5/img/status_water.png");"></div>
</div>
编辑:从我读到的问题可能是 click() 方法 isTrusted = false;
【问题讨论】:
使用browser console (dev tools)(点击F12
)并阅读任何错误。
您是否收到错误消息“TypeError
: 无法读取undefined
的属性'click
'”?
没有。唯一的输出是“未定义”。感谢您的快速答复。我也尝试在子元素上使用 .click()。
【参考方案1】:
您似乎混淆了两个不同的问题。第一个是关于被识别的方法。
当你有浏览器控制台交互时
> document.getElementById('...').click()
< undefined
点击方法被识别,它只是没有产生返回值。您可以检查调用无法识别的内容的行为
> (0).click();
x Uncaught TypeError: 0.click is not a function at <anonymous>:1:5
现在第二个问题是关于方法什么都不做。
网页中的事件处理可以通过许多不同的方式完成。 click() 有什么作用?也许它会发送一个 mouseclick 事件,但有问题的应用程序可能正在侦听一个 mousedown 事件(按下按钮时立即触发,无需等待其释放)。您可以搜索浏览器的开发人员工具文档以了解如何检查事件侦听器的元素并找出您应该触发的适当的事件侦听器。模拟类似 mousedown 事件的事情比仅仅调用 click()
复杂得多,但它是可行的。您可以查看MDN documentation for MouseEvent 并搜索如何创建合成单击鼠标事件的示例。
【讨论】:
以上是关于.click() 方法无法识别的主要内容,如果未能解决你的问题,请参考以下文章