我正在尝试模拟一个.click()
event
on a React元素,但我不明白为什么它不起作用(当我发射时它没有反应event
).
我想仅使用 JavaScript 发布 Facebook 评论,但我陷入了第一步(执行.click()
on div[class="UFIInputContainer"]
元素)。
我的代码是:
document.querySelector('div[class="UFIInputContainer"]').click();
这是我尝试执行此操作的 URL:https://www.facebook.com/plugins/feedback.php...
附:我对 React 没有经验,我不知道这在技术上是否可行。这是可能的?
编辑:我正在尝试这样做Chrome DevTools Console
.
React 跟踪mousedown
and mouseup
用于检测鼠标点击的事件,而不是click
像大多数其他事情一样的事件。所以不要调用click
直接方法或调度click
事件,您必须调度向下和向上事件。为了更好地衡量,我还发送了click
事件,但我认为这对于 React 来说是不必要的:
const mouseClickEvents = ['mousedown', 'click', 'mouseup'];
function simulateMouseClick(element){
mouseClickEvents.forEach(mouseEventType =>
element.dispatchEvent(
new MouseEvent(mouseEventType, {
view: window,
bubbles: true,
cancelable: true,
buttons: 1
})
)
);
}
var element = document.querySelector('div[class="UFIInputContainer"]');
simulateMouseClick(element);
这个答案的灵感来自Selenium Webdriver 代码.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)