【问题标题】:How to simulate mouseenter event in Selenium or Javascript?如何在 Selenium 或 Javascript 中模拟 mouseenter 事件?
【发布时间】:2019-02-19 03:57:12
【问题描述】:

我一直在使用 SeleniumJavascriptSeLion 处理 Web UI 自动化任务。我想截取一些等效场景的屏幕截图,如下面的谷歌主页:

当鼠标在该麦克风图标中移动(单击或悬停)时应显示“按语音搜索”。我搜索了一堆解决方案,不幸的是它们都没有按预期工作。

我基本上是在处理这样的事情:

<div id="div_id">
  <button type="button" class="button_class" disabled="" data-marko=" . 
    {"onclick":"handleClick s0-2-0-27-0 
    false&quot;,"onkeydown":"handleKeydown s0-2-0-27-0 false"}" 
    title="This message shows by mouseenter event" aria-label="This 
    message shows by mouseenter event">
      <span class="span_class"></span>
  </button>
</div>

当鼠标进入该按钮时,“This message shows by mouseenter event”将出现。该页面可能由Marko-js 编写。用纯 Javascript 无法真正处理它,我试过了。

有什么想法吗?

提前致谢!

【问题讨论】:

  • 你能提供一个 JsFiddle 或其他平台的工作示例吗?

标签: javascript selenium ui-automation marko


【解决方案1】:

我为您提供了一个简单的工作示例,如果它适合您的需求,请给我反馈。

function simulateMouseEnter() {
  var event = new MouseEvent('mouseenter', {
    'view': window,
    'bubbles': true,
    'cancelable': true
  });
  var myTarget = document.getElementById('target_div'); 
  var canceled = !myTarget.dispatchEvent(event);
  if (canceled) {
    // A handler called preventDefault.
    alert("canceled");
  } else {
    // None of the handlers called preventDefault.
    alert("not canceled");
  }
}

function mouseEnterBehaviour() {
    myElement = document.getElementById("target_div");
     // attach mouseenter event listener to element
    myElement.addEventListener("mouseenter", function(event) {
        // change the color of the font
        event.target.style.color = "red";
    });  
    // call the simulation
    setTimeout(simulateMouseEnter,3000);
}

mouseEnterBehaviour();
&lt;div id="target_div"&gt;target div&lt;/div&gt;

注意:这应该适用于大多数浏览器事件

【讨论】:

  • 感谢您的努力。此代码完美运行,但不适用于我的场景。我在我的问题中添加了一些细节,请看一下。谢谢
【解决方案2】:

当鼠标在该麦克风图标中移动(单击或悬停)时应显示“按语音搜索”

如果您阅读此链接:https://www.w3.org/TR/DOM-Level-3-Events/#trusted-events,它表示只有用户代理事件才能触发“语音搜索”。它不能由脚本完成

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    相关资源
    最近更新 更多