【发布时间】:2021-02-05 15:32:16
【问题描述】:
我正在开发一个 chrome 扩展程序来自动填写一些表格。问题是,这些网站正在使用 React.js 和其他 Javascript 组件,这使得添加输入或从自动完成菜单中进行选择变得非常困难。 现在我知道用于 chrome 扩展的 chrome.debugger API 允许这样做,但我似乎无法让它工作。 有人可以指导我如何使用此 API 点击元素并发送键盘输入吗?
【问题讨论】:
-
您应该发送这些Input 命令之一。但是,如果您发送站点侦听的所有事件,通常一个普通的 DOM dispatchEvent 就足够了。您可以在 devtools、事件侦听器面板中看到它们。
-
@wOxxOm 感谢您的回复。我已经尝试过 dispatchEvent 并取得了不同程度的成功。有些元素我可以与之互动,有些则完全拒绝让步。例如,我专注于某个输入字段,在其中键入一个字符串,然后会出现一个自动完成下拉菜单和该字符串。现在,我想单击下拉列表中的项目以确认我键入的字符串,但我无法使用 dispatchEvent 来执行此操作。您链接到的输入命令似乎可以工作。但是,我不知道如何使用它们。您能否给我一个“Input.dispatchMouseEvent”的示例,以便我了解它是如何工作的?
-
对于键盘模拟,您可以从这里使用 keypress 或 SimulateWordTyping-github.com/fxnoob/speech-recognition-toolkit/blob/master/src/…
-
RE 自动完成。所有实现都不同,但根据我的经验,您需要首先向该字段添加文本。然后你需要等到自动完成选择的 HTML 更新。一旦有了新的 HTML,您需要检查选项并单击所需的元素。我在输入之前设置了一个观察者,然后观察者处理等待,直到自动完成出现。
-
@darbid 我可以显示自动完成功能。我只是无法点击出现的选项。
标签: javascript google-chrome-extension ui-automation