我正在使用一个嵌入WebGL播放器的应用程序。
<body>
<div class="application_layout">
<header class="header clearfix">
<nav class="header__left">
<ul class="clearfix">
<li class="menu__item menu__item--back">
<a title="Back" class="link--back"></a>
</li>
</ul>
</nav>
</header>
<div id="unity-webgl">
<canvas style="cursor: default;" id="#canvas" width="1596" height="386"></canvas>
</div>
</div>
</body>在使用RSpec和capybara的验收测试中,我试图模拟页面上的单击操作。
做的时候
execute_script("$(document.elementFromPoint(100, 20).click();")
# the position of the "Back" link显然,一切都很好,脚本正在正确地单击"Back“链接。
但是,当尝试单击WebGL div中的任何区域时,请使用以下内容
var event = $.Event('click');
event.clientX = 200;
event.clientY = 100;
$('#canvas).trigger(event);什么都没发生。
有任何方法来模拟鼠标点击WebGL div吗?
发布于 2018-08-28 17:34:52
你不应该试图模拟点击-你应该告诉Capybara做点击。如果需要对单击进行偏移,请使用click方法可用的选项。
element.click(x: 200, y: 100)每当您使用JS在页面上触发事件时,您的测试就变得不那么有用/有效了,因为它允许用户做一些永远做不到的事情。
发布于 2019-02-08 17:24:05
另一个选项是使用rumouse gem。但是它不适用于无头,它需要窗口焦点和坐标是系统范围的。
https://stackoverflow.com/questions/52062667
复制相似问题