使用控制台中的jQuery模拟用户单击锚标记

时间:2016-08-21 03:48:12

标签: javascript jquery

我正在尝试模拟用户点击按钮(从控制台),我无法正常工作。

首先,访问chegg.com(使用Chrome)。接下来,检查页面元素并切换设备,以便Chrome的移动设备模拟器打开(我们需要移动网站)。

我想使用jQuery单击汉堡包菜单(三个堆叠的行),但我进入控制台的任何内容都不能(解决方案必须在控制台上运行)。元素如下所示:

<a href="javascript:;" title="More ..." class="nav icon More">Navigate</a>

最初我认为导致问题的href="javascript:;"(我意识到它通常不应该,但我正在抓住吸管),但经过一些测试后似乎不是那样的情况

我尝试了以下内容:

$('a.nav.icon.More').click()
$('a.nav.icon.More')[0].click()
$('a.nav.icon.More').trigger() // returns error
$('a.nav.icon.More').mousedown()

我还尝试点击parent元素,以防事件监听器附加到其中一个,但无济于事。有人能指出我正确的方向吗?

3 个答案:

答案 0 :(得分:1)

<div class="more-item nav-item active">
    <div class="header">More <span class="arrow-down"></span></div>
    <div class="carrot">
        <div class="carrot-inner"></div>
    </div>
    <div class="more-hover-content hover-box">
        <ul>
            <li><a href="http://www.chegg.com/signup/?redirect=http%3A%2F%2Fwww.chegg.com%2F" class="track-signup">Create an account</a></li>
            <li><a href="http://www.chegg.com/login/?redirect=http%3A%2F%2Fwww.chegg.com%2F" class="track-signin hide-initially">Sign in</a></li>
            <li><a href="http://www.chegg.com/login/?redirect=/my/account/returnbooks" class="track-returnbooks" data-noajax="">Return your books</a></li>
            <li><a href="http://www.chegg.com/sell-textbooks" class="track-selltextbooks" data-noajax="">Sell your books</a></li>
            <li><a href="http://www.chegg.com/contactus" class="track-help" data-noajax="">Help</a></li>
        </ul>
    </div

您必须致电点击容器标签a

试试这个

$(".more-item.nav-item").click()

答案 1 :(得分:1)

这确实是一个奇怪的问题。正如您所注意到的,所有常用的点击方式都不起作用。我对这里发布的“答案”感到惊讶,因为只要尝试它们就可以清楚地知道它们都不适用于你所链接的这个网站。

查看源代码,看来网站的JS以非传统的方式对事件绑定做了一些奇怪的事情(例如,show / hide菜单事件绑定到df %>% separate(col = "econ.activ", into = c("folio", "descripción"), sep = "\\-", extra="merge") # rut folio descripción #1 50001780 552010 RESTAURANTES #2 50001810 930990 OTRAS ACTIVIDADES DE SERVICIOS PERSONALES N.C.P. #3 50001820 930990 OTRAS - SEP #4 50001850 930990 OTRAS ACTIVIDADES DE SERVICIOS PERSONALES N.C.P. #5 50001890 930990 OTRAS ACTIVIDADES DE SERVICIOS PERSONALES N.C.P. #6 50001940 930990 OTRAS ACTIVIDADES DE SERVICIOS PERSONALES N.C.P. hamburger } event而不是传统的ns.CLICK事件。每当我点击并手动重新点击菜单时,我的浏览器的前进和后退按钮也会发生变化,让我觉得路由和历史记录实现的方式很奇怪。

所以,你不会疯狂:)我想不出一个简单的方法来触发点击网站,但是从JS我们也可以看到点击事件相当于切换{{1来自click的类。因此,如果您想要点击相同的操作,可以调用hidden

答案 2 :(得分:0)

触发器是最好的选择之一。但是,您应该将事件作为参数传递:

<li class="task" id="task_<%= task.id %>" >
  <%= check_box_tag task.id, task.id, task.mark, class: "task-check" %>
  <label for=<%=task.id %> ></label>
    <p><%= task.content %></p>