首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过PhantomJS触发MouseDown?

如何通过PhantomJS触发MouseDown?
EN

Stack Overflow用户
提问于 2017-03-02 04:17:28
回答 2查看 261关注 0票数 6

我试过了:

代码语言:javascript
运行
复制
var clickEvent = document.createEvent('MouseEvents');
clickEvent.initEvent("mousedown", true, true);
jQuery('.left-rail-facets .facet-list .facet.CS .suggestion[data-value="B"] a')[0].dispatchEvent(clickEvent);

但它只是不能在网站上触发动作。未返回错误。

EN

回答 2

Stack Overflow用户

发布于 2017-12-29 10:28:26

这就是如何通过"mousedown“事件以编程方式触发对DOM元素的单击。要回答您的问题,您的源代码中需要有两样东西:

用于检测点击的

事件侦听器

在jQuery行中的多个选择器之间使用

逗号。

请运行下面的代码片段,它显示了修改后的jQuery行和正确运行的侦听器。

代码语言:javascript
运行
复制
<!DOCTYPE html>
<html>

<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <script>
    $(document).ready(function() {
      // You must have event listeners to see if anything is actually happening. For example, here I will add only a listener to the first element:
      jQuery(".left-rail-facets")[0].addEventListener('mousedown', function(e) {
        jQuery(".left-rail-facets")[0].innerHTML = "I have received a click.";
      }, false);
      // Now here is the code from your question. Please see how I have commas instead of spaces in my jQuery selector:
      var clickEvent = document.createEvent('MouseEvents');
     clickEvent.initEvent('mousedown', true, true);
      jQuery('.left-rail-facets,.facet-list,.facet.CS,.suggestion[data-value="B"],a')[0].dispatchEvent(clickEvent);
    });
  </script>
</head>

<body>

  <h1>I am a Webpage</h1>

  <p class="left-rail-facets">I have not received a click.</p>
  <p class="facet-list">I have not received a click.</p>
  <facet class="CS">I have not received a click.</facet>
  <p class="suggestion" data-value="B">I have not received a click.</p>
  <a href="url">I have not received a click.</a>

</body>

</html>

票数 4
EN

Stack Overflow用户

发布于 2017-12-29 08:51:24

您将需要使用document.createEvent和event.initMouseEvent:

代码语言:javascript
运行
复制
var element = document.querySelector('.left-rail-facets .facet-list .facet.CS .suggestion[data-value="B"] a');
//or var element = jQuery('.left-rail-facets .facet-list .facet.CS .suggestion[data-value="B"] a')[0];
var elementRect = element.getBoundingClientRect();
var mouseEvent = document.createEvent('MouseEvents');
mouseEvent.initMouseEvent('mousedown', true, true, window, 0, elementRect.left, elementRect.top);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42541222

复制
相关文章

相似问题

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