Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 以编程方式单击网页按钮_Java_Html - Fatal编程技术网

Java 以编程方式单击网页按钮

Java 以编程方式单击网页按钮,java,html,Java,Html,如何在Java中以编程方式单击网页按钮 给定此按钮: 按钮 在Javascript中,它的工作原理如下: var newWin=window.open(siteYouHaveAccessTo); newWin.document.getElementById('titlebutton')。单击(); 我想知道如何用Java而不是Javascript来实现这一点(有没有一种方法可以单独用Java实现,或者我必须导入/使用Javascript?) 编辑: 单击该按钮将导致调用名为setText()

如何在Java中以编程方式单击网页按钮

给定此按钮:

按钮
在Javascript中,它的工作原理如下:

var newWin=window.open(siteYouHaveAccessTo);
newWin.document.getElementById('titlebutton')。单击();
我想知道如何用Java而不是Javascript来实现这一点(有没有一种方法可以单独用Java实现,或者我必须导入/使用Javascript?)

编辑:

单击该按钮将导致调用名为setText()的函数。 我不确定如何发送与此功能类似的请求?
如果我粘贴函数代码会有帮助吗?

我不确定这是否是您想要的,但是如果您想要做的只是用Java发出HTTP请求,那么这应该可以做到:

HttpURLConnection urlConnection = null;
URL urlToRequest = new URL("http://yoursite.com/yourpage?key=val&key1=val1");
urlConnection = (HttpURLConnection) urlToRequest.openConnection();
urlConnection.setConnectTimeout(CONN_TIMEOUT);
urlConnection.setReadTimeout(READ_TIMEOUT);

// handle issues
int statusCode = urlConnection.getResponseCode();
if (statusCode == HttpURLConnection.HTTP_UNAUTHORIZED) {
    // handle unauthorized (if service requires user login)
} else if (statusCode != HttpURLConnection.HTTP_OK) {
    // handle any other errors, like 404, 500,..
}

InputStream in = new BufferedInputStream(urlConnection.getInputStream());

// Process response

将超时常量替换为您自己的值,并将URL替换为与您网站的值相匹配的URL。您可以通过单击按钮以键/值对的形式在URL中作为查询参数发送任何要发送的数据

您不能仅用Java“以编程方式”单击按钮,这就是我们使用JavaScript的原因。如果您想控制浏览器,例如单击按钮和填充文本字段,则必须使用自动化工具。使用Java的自动化工具是Selenium。这通常用于测试自动化,但将执行您希望它执行的操作


如果您希望使用selenium或java.awt.Robot实现浏览器自动化,请参见


机器人可以向操作系统发送“点击”。将其与vbs脚本一起使用,首先确保特定窗口具有焦点,然后发送文本和单击,最后保存结果。。。不是很好,如果页面发生了变化,那么您需要进行调整。但是我做这个的人已经用了4年了。

你不会点击一个按钮,你会发送一个类似于点击按钮时发送的HTTP请求。Java在什么环境下?作为(另一个)网页中的小程序?作为一个独立的UI应用程序?在服务器端无头Java程序中?@Jeshurun的意思是一个HTML按钮。无论是swing UI,发送HTTP请求都没有区别。有了我第一条评论中的关键词,你应该可以在谷歌上搜索如何用java发出HTTP请求。我不明白。Java与单击HTML按钮有什么关系?除非它是一个小程序,否则您的浏览器不会执行它。@user2100799据我所知,您不能这样做。按钮本身就是HTML文本。它在浏览器中具有值,可将其转换为可单击的UI元素。因为java不会与浏览器交互,所以您基本上无法访问它。Javascript在浏览器中运行,因此也无法访问它。这是有道理的。取决于在哪个浏览器中打开页面,但我认为selenium有最常用的插件。我可以在android应用程序内部添加selenium吗。