首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法识别.click()方法

无法识别.click()方法
EN

Stack Overflow用户
提问于 2021-09-29 22:01:47
回答 1查看 81关注 0票数 0

现在,我正在为我最喜欢的浏览器游戏Big Barn World创建另一个版本的机器人。我尝试在一个元素上使用.click()来给作物浇水,但这是行不通的。我尝试向正在使用.click()的节点添加EventListener。这很好用,但网站本身不会对此做出反应。在以前的版本中,我使用http请求或鼠标自动化,两者都很慢且不一致。我正在寻找一种不同的方法来“点击”网页上的按钮。如果你能告诉我是什么阻止了.click()的工作,我会很高兴的,这样我就可以做进一步的研究了。我在EO.WebBrowser中使用C#/JS。

这是我正在运行的JS代码。

代码语言:javascript
复制
document.getElementById('s_0_0').click();

我在chrome dev控制台中尝试了一下,然后手动点击了按钮。如果我手动点击,一切正常。如上所述,EventListener可以识别我的.click()-call,但网站本身什么也做不了。Dev Console返回undefined

我正在尝试点击的元素。

代码语言:javascript
复制
<div class="sector s_0_0" id="s_0_0" style="background-image: url(&quot;https://static.airg.ca/games/bbw/fieldplot/200/200/png&quot;); 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(&quot;https://static.airg.ca/bbw5/img/status_water.png&quot;);"></div>
</div>

编辑:据我所知,问题可能是click()方法的isTrusted = false;

EN

回答 1

Stack Overflow用户

发布于 2021-10-02 16:55:07

你似乎把两个不同的问题混在一起了。第一个是关于被识别的方法。

当您有一个浏览器控制台交互时,比如

代码语言:javascript
复制
> document.getElementById('...').click()
< undefined

click方法已被识别,它不会产生返回值。您可以检查调用无法识别的内容的行为

代码语言:javascript
复制
> (0).click();
x Uncaught TypeError: 0.click is not a function at <anonymous>:1:5

现在,第二个问题是关于什么都不做的方法。网页中的事件处理可以通过许多不同的方式来完成。click()做什么?也许它会发送一个mouseclick事件,但有问题的应用程序可能正在侦听mousedown事件(只要按下按钮就会触发,而无需等待其释放)。您可以搜索浏览器的开发人员工具文档,以了解如何检查元素的事件侦听器,并找出应该触发的适当侦听器。与仅仅调用click()相比,模拟mousedown事件要复杂得多,但这是可行的。您可以查看MDN documentation for MouseEvent并搜索如何创建合成单击鼠标事件的示例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69383793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档