我不得不用噩梦写一个刮刀。在一个链接上,网站使用div来让用户离开页面。为了遵循导航流程,我希望我的梦魇实例能够点击"点击" div。但是,当我在chrome上获取元素并调用click时,没有任何反应。与Firefox不同,它的工作正常。
脚本
let elem = document.getElementByClassName('is-a-div-element')[0];
elem.click()
在Firefox上工作正常,Chrome上没有任何反应!有任何想法吗?导致问题的网站使用React。不确定这是否有帮助。
HTML结构如下所示。
<div class="nav-element">
<div class="is-a-div-element">
<div roll="button">
<span roll="presentation">Hello World</span>
<span class="Exit">Exit</span>
</div>
</div>
</div>
答案 0 :(得分:1)
我不确定Nightmare是如何解决这个问题的,因为你提到Chrome和Firefox并且似乎使用的是标准浏览器Javascript,但无论如何我都会尝试回答。
由于您已使用更具体的信息编辑了问题,因此我将编辑我的答案。现在我能看到的主要问题是你正在使用getElementByClassName
,这不是一个函数(缺少s
)。
请改为:
let elem = document.getElementsByClassName('is-a-div-element')[0];
在Chrome和Firefox中测试过:
window.addEventListener('load', function() {
let elem = document.getElementsByClassName('is-a-div-element')[0];
elem.click();
});
<div class="nav-element">
<div class="is-a-div-element" onclick="alert('this was clicked frens');">
<div roll="button">
<span roll="presentation">Hello World</span>
<span class="Exit">Exit</span>
</div>
</div>
</div>