2

我一直在使用 和 处理 Web UISelenium自动化Javascript任务SeLion。我想截取一些等效场景的屏幕截图,如下面的谷歌主页: 在此处输入图像描述

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

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

<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 处理它。

任何想法?

提前致谢!

4

2 回答 2

0

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

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

于 2018-09-14T10:45:46.273 回答
0

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

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();
<div id="target_div">target div</div>

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

于 2018-09-14T10:47:04.020 回答