javascript - Firefox 点击和 chrome 点击有什么区别?

标签 javascript nightmare

我必须使用 Nightmare 来编写一个爬虫。在其中一个链接上,网站使用 div 供用户导航离开页面。为了遵循导航流程,我希望我的 Nightmare 实例“单击”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>

最佳答案

我不确定 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>

关于javascript - Firefox 点击和 chrome 点击有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44793174/

相关文章:

javascript - 如何使用 NightmareJs 串行下载多个文件?

json - NightmareJS 将变量保存到文件

javascript - 单击按钮 2 时禁用按钮 1 部分

javascript - 如何隐藏div html?

javascript - Nightmare.js 不适用于 Azure Webjob

javascript - Nightmare.js 在 Ubuntu Linux 云服务器上没有按预期工作

javascript - javascript 变量上的 Nightmare.js wait()

javascript - 在React中,有限状态机是否取代了路由器的角色?

javascript - 如何让Vue Material 选择框在默认值为空时显示选项?

javascript - Jquery UI resizable - 调整放置在 iframe 上的 div 的大小