如何使用Java程序操作浏览器中的文本字段?

如何使用Java程序操作浏览器中的文本字段?,java,javascript,automation,firefox-addon,Java,Javascript,Automation,Firefox Addon,嗨,我的问题是一种自动化问题。我想访问一个由两个可编辑文本字段和一些非重要元素组成的特定页面,将所有文本字段读入一个Java程序,该程序被指定用于过滤关键字并生成字符串。然后,如果可能的话,我想将该字符串发回其中一个文本字段,以便将我的字符串发布到该站点。问题是我没有自己的网站和网页,我想访问的是密码安全(我需要登录),我当然知道。此外,除了Java,我什么都不熟悉,否则我会用另一种语言编写过滤器 首先,我尝试使用Java中的URL类读取源代码,在代码中搜索两个文本字段的内容,然后对其进行过滤。

嗨,我的问题是一种自动化问题。我想访问一个由两个可编辑文本字段和一些非重要元素组成的特定页面,将所有文本字段读入一个Java程序,该程序被指定用于过滤关键字并生成字符串。然后,如果可能的话,我想将该字符串发回其中一个文本字段,以便将我的字符串发布到该站点。问题是我没有自己的网站和网页,我想访问的是密码安全(我需要登录),我当然知道。此外,除了Java,我什么都不熟悉,否则我会用另一种语言编写过滤器

首先,我尝试使用Java中的URL类读取源代码,在代码中搜索两个文本字段的内容,然后对其进行过滤。但由于密码保护,我无法连接到该页面。在那之后,我试图找到一个解决方法,我想编写一个Mozilla Firefox插件,它通过“document.documentElement.innerHTML”获取源代码,然后将其提供给我的Java程序,或者将其写入一个临时文件中,以便我的程序访问。但是我也找不到一个命令

因此,我需要一个解决方案,要么发送密码访问特定页面,要么以另一种方式获取文本字段的内容,获取页面的源代码就可以了。最后,我需要一个平滑的方式将过滤后的字符串发布到网站上

提前谢谢,我希望你能理解我的问题并找到解决办法

public static void main(String[] args) {
    URL url;
    InputStream is = null;
    BufferedReader br;
    String line;
    String header;
    String textbox;
    String shopname;

    try {
        url = new URL("TestURL");
        is = url.openStream();  // throws an IOException
        br = new BufferedReader(new InputStreamReader(is));
        while ((line = br.readLine()) != null) {
            System.out.println(line);
            if(line.contains("Gib hier den Titel an")){//After this line follows the textbox, works just as the first test.
                line = br.readLine();
                header=line;
            }
        }
    } catch (MalformedURLException mue) {
         mue.printStackTrace();
    } catch (IOException ioe) {
         ioe.printStackTrace();
    } finally {
        try {
            if (is != null) is.close();
        } catch (IOException ioe) {

        }
    }
    System.out.println(filterH(header));
    System.out.println(filterT(textbox));//to be implemented.
}

// Simple Addon still
exports.main = function() {};
require("widget").Widget({
id: "widgetID1",
label: "My Mozilla Widget", //to be changed
contentURL: "http://www.mozilla.org/favicon.ico" // To be changed
 onClick: function(event) {
    var x= document.documentElement.innerHTML;
  //do Filter and Stuff
}
});

尝试在URL中嵌入凭据,如下所示:


http://username:password@www.example.com/page.html

您到目前为止都在尝试什么?很好的尝试:)但是以这种方式登录不起作用,无论是通过代码还是在浏览器中键入。可能是用Cookie之类的?啊,所以需要你登录?然后,您可以访问几个URL,模拟登录过程,我认为这会起作用,或者获取一个有效的cookie并提供它。不过,我不知道如何立即登录。我该如何模拟登录过程?登录页面由用户名、密码和提交按钮字段组成。嵌入方法对此不起作用。我想最好是每个会话登录一次,而不是每次登录一次。当单击提交按钮时,它可能会通过HTTP POST将用户名和密码发送回服务器。您可以观察Fiddler或TamperData中发生的情况,然后从Java复制它。您可能还可以通过检查页面的源来确定发生了什么——用户名和密码是否在表单元素中?该表单的作用是什么?很抱歉“批准/感谢回答”我是Stackoverflow的新手:)