使用 Java 如何将文本放置到响应用户按键操作的 HTML 文本框?

Using Java how can I lay down text to an HTML textbox that responds to a users keyup action?

我正在构建一个与 public 网站交互的 Java 应用程序(我无法访问服务器端)。

该网站的搜索功能是一个 javascript 叠加层,当用户键入他们的搜索条件时(很像 google,当您键入前几个字符时)使用KeyUp听众。

在向表单提交文本时,我知道如何使用 Java 到 post。但是我怎样才能将文本发送到上面提到的文本框来模拟实际在网页上键入文本呢?添加 value= 属性不起作用。而且我认为发送 POST 请求也不起作用。

源码简直了

<input type="text" placeholder="Find a user by username or interest" class="opensans" />

即使我在框中输入内容后代码也没有改变。

我发现这是在使用 javascript KeyUp 侦听器。

简而言之,使用 Java 如何将文本放置到响应用户按键操作的 HTML 文本框?

你试过使用htmlElement.type("something");然后稍微等待 JavaScript 工作?

如果您尝试为 Google 构建抓取工具,您可能会违反他们的服务条款;小心行事。

也就是说,除非您的 Java 程序内置于浏览器或浏览器扩展程序中,否则没有 "keyup/keydown" 事件可以挂接。远程服务器只能看到 HTTP 请求。当你说 "I know how to make a POST request" 时,那是它的一部分。

如果您访问您正在尝试使用的网站,并打开 Chrome 的开发工具,有一种方法可以解决这个问题。具体来说,右键单击 "inspect element",然后单击 "Network" 选项卡。然后重新加载页面。点击红色按钮清除选项卡。然后开始在文本框中输入内容,并观察它发出的网络请求。

如果您可以使用 Java 程序复制那一系列网络请求,您将复制服务器看到的 keydown/keyup activity。对于 Google,这些是在 HTTPS 中获得 200 响应的 XHR 请求。 Google 中还有一些秘密调味料可以防止你这样做,总的来说祝你好运。