【发布时间】:2023-01-05 02:56:31
【问题描述】:
我正在尝试使用开发人员控制台为反应元素模拟点击。为了方便大家测试而不是使用我的代码,请使用以下反应网站https://www.tradingview.com/chart/?symbol=COINBASE%3ABTCUSD
这发生在 Facebook 等其他网站以及某些项目上。这只是一个简单的无登录站点来测试。
我尝试单击的部分是监视列表中的一个项目。在下图中,我用箭头指向它。当您单击屏幕右上角“开始免费试用”蓝色按钮下方闹钟图标上方的按钮时,会出现特定菜单。
要了解我预期会发生什么,请尝试单击该行中的任何列,例如 SPX、NDQ、DJI 等……(您应该会看到页面和股票图表发生变化)
我目前可以“排序”模拟点击,但它所做的只是突出显示该行,而不是像执行实际点击时那样实际更改页面。
要明白我的意思,请按 F12 打开开发人员控制台并键入如下命令。
document.getElementsByClassName("wrap-XdW9S1Ib")[2].dispatchEvent(new Event('click',{bubbles:true}));
类名称对您来说可能不同,因此您可能需要在开发人员控制台的元素菜单中四处寻找以找出适合您的名称。搜索 wrap- 一词,您最终应该会找到正确的类集。
在我上传的图片中,您会注意到点击事件触发了 NDQ 周围的蓝色背景(因为这是包装类的“第三”元素)。请注意,它并没有改变实际的页面和股票图表。
我曾尝试发送其他事件,如“输入”、“选择”、“提交”、“dblclick”,但均无济于事。我也试过点击那个包装器的子元素,每一个都没有运气。
我的目标是让它模拟点击并实际让它因点击而改变页面。
我目前的方法做错了什么?
【问题讨论】:
-
有点滑稽:你做错的是期望有人为你分析一个外部(可能是专有的)网站。
-
@Tibrogargan 我仅将此网站用作示例,因为其他 React 网站也会发生这种情况,如果您愿意,我可以使用其他网站作为示例吗?这只是最容易测试的一个。我不明白为什么它在这里不起作用。
-
那将是更可取的。这与 minimal reproducible example 相去甚远
-
你试过
'hover'吗? -
谢谢,我还没有,我会尽快尝试
标签: javascript reactjs onclick dom-events onclicklistener