javascript - 在 react 元素上模拟点击事件

标签 javascript reactjs

我正在尝试模拟 .click() eventReact 上元素,但我不知道为什么它不起作用(当我发射 event 时它没有反应)。

我想仅使用 JavaScript 发布 Facebook 评论,但我卡在了第一步(在 .click() 元素上执行 div[class="UFIInputContainer"])。

我的代码是:

document.querySelector('div[class="UFIInputContainer"]').click();

这是我尝试执行此操作的 URL:https://www.facebook.com/plugins/feedback.php...

附言我对 React 没有经验,我真的不知道这在技术上是否可行。可能吗?

编辑:我正在尝试从 Chrome DevTools Console 执行此操作.

最佳答案

React 跟踪 mousedownmouseup 事件来检测鼠标点击,而不是像大多数其他事件一样跟踪 click 事件。因此,不是直接调用 click 方法或调度 click 事件,而是必须调度 down 和 up 事件。为了更好的衡量,我还发送了 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 code .

关于javascript - 在 react 元素上模拟点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40091000/

相关文章:

javascript - 是否可以发布 responseType : 'stream' in Axios?

javascript - 如何将 Fabric js 与 React native 集成?

javascript - React Native - 居中 flexWrap 内容

javascript - HTML 符号代码在输入字段中无法正常工作

javascript - 获取和设置 Apex session 变量值

javascript - 提取与 XMLHttpRequest : clarifications on the under the hood implementations

javascript - 在 iFrame 中维护重定向

Javascript 显示/隐藏滚动到页面顶部

java - 使用 Spring Boot 进行服务器端渲染 React

javascript - 在某些 div 中显示 antd 模态掩码