如何使用Java在Windows中以编程方式关闭浏览器窗口

如何使用Java在Windows中以编程方式关闭浏览器窗口,java,selenium,awt,Java,Selenium,Awt,我正在写一个程序来搜索互联网上的词义。它将从文件中读取单词,打开默认浏览器,在谷歌中搜索单词,拍摄快照并保存在某处 问题是当我按程序搜索25个单词时,浏览器中会打开25个选项卡。所以电脑变慢了。为了解决这个问题,我想在搜索10个单词后关闭浏览器。有没有办法按程序关闭它。我正在使用java.awt。操作系统是Windows8。这是我在循环中调用的用于搜索单词的函数 public static void takeSnapshot(String word, String folderLocation)

我正在写一个程序来搜索互联网上的词义。它将从文件中读取单词,打开默认浏览器,在谷歌中搜索单词,拍摄快照并保存在某处

问题是当我按程序搜索25个单词时,浏览器中会打开25个选项卡。所以电脑变慢了。为了解决这个问题,我想在搜索10个单词后关闭浏览器。有没有办法按程序关闭它。我正在使用java.awt。操作系统是Windows8。这是我在循环中调用的用于搜索单词的函数

public static void takeSnapshot(String word, String folderLocation) {

        if (Desktop.isDesktopSupported()) {// For windows
            try {
                Desktop.getDesktop().browse(new URI("https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q="
                          + word + "%20meaning"));
            } catch (IOException e) {
                e.printStackTrace();
            } catch (URISyntaxException e) {
                e.printStackTrace();
            }
        }

        /* For linux
         * Runtime runtime = Runtime.getRuntime(); try { runtime.exec(
         * "/usr/bin/google-chrome -new-window " +
         * "https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q="
         * + word + "%20meaning"); } catch (IOException e1) { // TODO
         * Auto-generated catch block e1.printStackTrace(); }
         */

        try {
            TimeUnit.SECONDS.sleep(10);
        } catch (InterruptedException e2) {
            e2.printStackTrace();
        }

        Rectangle screenRect = new Rectangle();
        screenRect.setBounds(100, 150, 700, 700);
        BufferedImage capture;
        try {
            capture = new Robot().createScreenCapture(screenRect);
            ImageIO.write(capture, "bmp", new File(folderLocation, word + ".bmp"));
            System.out.println("Image is written");
        } catch (AWTException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

您没有使用selenium打开和操作浏览器吗?不清楚您是如何打开它的。@PascalHeraud
Desktop.getDesktop().browse
虽然您可以做您想做的事情,但这本身就是危险的,因为您“真的”不知道自己在处理哪个进程,例如,浏览器是由您还是由用户打开的。您需要调查JNI/JNA,您要做的是找到由
桌面
打开的窗口,现在因为这只是使用操作系统默认设置的窗口,这就成了一个问题。我的“一般”建议是在使用
桌面之前列出窗口,然后在它之后列出窗口(或在它之后一段时间),并“希望”您能找到正确的窗口