Java模拟人工打开谷歌浏览器,输入指定网址打开访问

Posted 洛阳泰山

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java模拟人工打开谷歌浏览器,输入指定网址打开访问相关的知识,希望对你有一定的参考价值。

java代码实现,模拟人工打开谷歌浏览器,输入指定网址,打开访问 

 

 代码实现

不需要第三方依赖,基于jdk的包的单类实现。

在idea等编辑器,里新建TestDeskTop类,复制粘贴下面代码,主方法运行即可。


import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.event.KeyEvent;
import java.io.File;
import java.io.IOException;
/**
 * Java机器人实现自动打开google浏览器,输入指定网站访问
 * @author tarzan
 *
 */
public class TestDeskTop {
    static Desktop deskApp = Desktop.getDesktop();

    static Robot robot;

    static {
        try {
            robot = new Robot();
        } catch (AWTException e) {
            e.printStackTrace();
        }
    }


    public static void main(String [] args) throws AWTException{
        openApp("C:\\\\Users\\\\liuya\\\\AppData\\\\Local\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe");
        //浏览器最大化快捷键 alt+space+x
        keyPressWithAlt(robot,KeyEvent.VK_SPACE,KeyEvent.VK_X);
        //地址栏输入网址
        keyPressString(robot,"baidu.com");
        //回车
        keyPress(robot, KeyEvent.VK_ENTER);
    }

    //打开app
    public static void openApp(String appPath) {
        //判断当前系统释放支持Desktop提供的接口
        if (Desktop.isDesktopSupported()) {
            try {
                deskApp.open(new File(appPath));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        //延迟1秒
        robot.delay(1000);
    }


    //Alt组合键
    public static void keyPressWithAlt(Robot r, int key1,int key2) {
        r.keyPress(KeyEvent.VK_ALT);
        r.keyPress(key1);
        r.keyPress(key2);
        r.keyRelease(key2);
        r.keyRelease(key1);
        r.keyRelease(KeyEvent.VK_ALT);
        r.delay(100);
    }

    //输入字符串
    public static void keyPressString(Robot r, String str) {
        //获取剪切板
        Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
        //将传入字符串封装下
        Transferable tText = new StringSelection(str);
        //将字符串放入剪切板
        clip.setContents(tText, null);
        //按下Ctrl+V实现粘贴文本
        keyPressWithCtrl(r, KeyEvent.VK_V);
        r.delay(100);
    }

    //Ctrl组合键
    public static void keyPressWithCtrl(Robot r, int key) {
        r.keyPress(KeyEvent.VK_CONTROL);
        r.keyPress(key);
        r.keyRelease(key);
        r.keyRelease(KeyEvent.VK_CONTROL);
        r.delay(100);
    }


    //实现按一次某个按键
    public static void keyPress(Robot r, int key) {
        //按下键
        r.keyPress(key);
        //释放键
        r.keyRelease(key);
        r.delay(100);
    }
}

代码解读

创建一个java robot操作对象

 static {
        try {
            robot = new Robot();
        } catch (AWTException e) {
            e.printStackTrace();
        }
    }

创建一个桌面程序对象 

    static Desktop deskApp = Desktop.getDesktop();

主方法实现步骤

1.openApp方法实现打开浏览器

2.keyPressString方法实现在地址栏输入网址

3.keyPress方法实现回车按键操作访问网址


    public static void main(String [] args) throws AWTException{
        openApp("C:\\\\Users\\\\liuya\\\\AppData\\\\Local\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe");
        //浏览器最大化快捷键 alt+space+x
        keyPressWithAlt(robot,KeyEvent.VK_SPACE,KeyEvent.VK_X);
        //地址栏输入网址
        keyPressString(robot,"baidu.com");
        //回车
        keyPress(robot, KeyEvent.VK_ENTER);
    }

 声明一个打开桌面软件的方法,通过软件路径,找到软件,实现打开操作



//打开app
    public static void openApp(String appPath) {
        //判断当前系统释放支持Desktop提供的接口
        if (Desktop.isDesktopSupported()) {
            try {
                deskApp.open(new File(appPath));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        //延迟1秒
        robot.delay(1000);
    }

 robot操作鼠标键盘的方法


    //Alt组合键
    public static void keyPressWithAlt(Robot r, int key1,int key2) {
        r.keyPress(KeyEvent.VK_ALT);
        r.keyPress(key1);
        r.keyPress(key2);
        r.keyRelease(key2);
        r.keyRelease(key1);
        r.keyRelease(KeyEvent.VK_ALT);
        r.delay(100);
    }

    //输入字符串
    public static void keyPressString(Robot r, String str) {
        //获取剪切板
        Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
        //将传入字符串封装下
        Transferable tText = new StringSelection(str);
        //将字符串放入剪切板
        clip.setContents(tText, null);
        //按下Ctrl+V实现粘贴文本
        keyPressWithCtrl(r, KeyEvent.VK_V);
        r.delay(100);
    }

    //Ctrl组合键
    public static void keyPressWithCtrl(Robot r, int key) {
        r.keyPress(KeyEvent.VK_CONTROL);
        r.keyPress(key);
        r.keyRelease(key);
        r.keyRelease(KeyEvent.VK_CONTROL);
        r.delay(100);
    }


    //实现按一次某个按键
    public static void keyPress(Robot r, int key) {
        //按下键
        r.keyPress(key);
        //释放键
        r.keyRelease(key);
        r.delay(100);
    }

实现效果截图

相关文章推荐

《java robot 机器人自动化,实现记事本自动输入自己的备忘录》 

以上是关于Java模拟人工打开谷歌浏览器,输入指定网址打开访问的主要内容,如果未能解决你的问题,请参考以下文章

谷歌浏览器设置新标签栏打开指定页面

C++中输入指定网址,然后用IE浏览器打开

为啥谷歌Chrome浏览器打开一些网页是(1X1)图片、空白的?

C# .NET winform 打开指定(谷歌)浏览器,如何设置cookie 实现自动登录

怎么设置谷歌浏览器默认以无痕浏览方式打开

Jupyter Notebook启动不会自动打开浏览器,每次都要自己打开浏览器输入网址