1. java程序模拟网页点击某个按钮
如果要登录的话直接post数据就行,具体可以网络 java模拟登录。
2. java 模拟用户点击事件
调用按钮的 doClick() 方法,下例演示了 button2 模拟点击 button1 按钮:
importjava.awt.FlowLayout;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JOptionPane;
publicclassAppextendsJFrame{
publicApp(){
this.setSize(300,200);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(newFlowLayout());
JButtonbutton1=newJButton("Button1");
button1.addActionListener(e->JOptionPane.showMessageDialog(App.this,"我是Button1"));
this.add(button1);
JButtonbutton2=newJButton("Button2");
button2.addActionListener(e->button1.doClick());
this.add(button2);
}
publicstaticvoidmain(String[]args){
newApp().setVisible(true);
}
}
3. app无法模拟屏幕点击
运行java程序。如果程序或者游戏是通过管理员权限打开的,就无法模拟点击了。这时胡镇哪只要用管理员权限下运行java程序即可生效。模拟点击是指通过脚本、系统指令完成一些自动化点击的操作,不需要人为点击,一般应用在自动化测试,帮助阅读裤码屏幕文字旅盯等。
4. 怎么用java代码模拟网页点击事件
没这么做过,不过你世局可以陵银去 研究下java.awt.Robot 类,此类用于为测试自动化、自运行演示程序和其他需要控制鼠标和键盘的应用搜汪让程序生成本机系统输入事件.跟人感觉用这个可能可以实现
5. Java写的模拟鼠标的游戏辅助,运行时没法在游戏界面正常点击
java模拟键盘鼠标等操作, 我也研究过几天,现在把学习心得分享下.
存在的问题: 现在的问题表面是游戏所在的磁盘路径, 影响了Java的执行效果 ,其实不同的游戏你又会发现不同的BUG, 比如有的游戏,你会发现Java没有办法模拟键盘输入,有的游戏java无法模拟鼠标动作.有的游戏,Java模拟完全失效. 只有少部分小游戏, Java可以勉强模拟运行.
根本原因是: Java不擅长与系统底层打交道, 毕竟还隔着虚拟机, 就算使用了Java Robot类,进行简单的键盘鼠标模拟, 还是不够稳定.
解决办法 : 当然了还是有解决办法的,比如在Java中可以使用下面的两种方法:
方法一: Robot, 比较初级和粗糙, 功能弱小, 只能前台运行.
方法二:JNI/JNA技术, 调用windows API ,或者调用c语言代码. 可以完成
!!!强烈推荐该方法,可以后台运行, 特别是JNA, 简化了JNI, 用起来很方便
方法三: JACOB 技术, 目前比较成熟的就是大漠插件, java可以使用JACOB技术,来调用他
有些函数, 没有办法完成调用...
其他途径的解决: C# 调用 大漠插件 , 基本完美解决了;
为什么选择C#, 因为和Java语法特别类似, 迁移方便
为什么选择大漠插件, 因为很多的函数 都可以直接调用调用即可, 比如找图,找色,找字,截图, 模拟键鼠操作等.
下面是学习的时候写过的几个小案例
我们学习的目的是为了深入了解Java技术.
6. java中控制鼠标点击的方法
//利用 java.awt.Robot 类来自动完成一些键盘或鼠标的动作,下面是一个小例子
//程序流程:模拟鼠标左键点击 开始-->运行-->CMD-->DIR-->CLS-->EXIT
//模拟右键点击 移动到右下角-->右键点击-->调整日期和时间-->退出
import java.awt.*;
import java.awt.event.*;
import javax.swing.JOptionPane;
//Test.java
public class Test {
public static void main(String[] args) throws Exception {
final Robot rb = new Robot();
new Thread(){
public void run(){
rb.delay(2000);
//回车
rb.keyPress(KeyEvent.VK_ENTER);
rb.keyRelease(KeyEvent.VK_ENTER);
}
}.start();
JOptionPane.showMessageDialog(null,"以下程序自动执行,包括本对话框,请不必进行人为干预.\n如果不能正常执行程序,请先关闭输入法");
//设置开始菜单的大概位置
int x = 40;
int y = Toolkit.getDefaultToolkit().getScreenSize().height-10;
//鼠标移动到开始菜单,
rb.mouseMove(x,y);
rb.delay(500);
//单击三次开始菜单
for(int i=0; i<3; i++)
pressMouse(rb,InputEvent.BUTTON1_MASK,500);
rb.delay(1000);
//运行CMD命令 r cmd enter
int[] ks = {KeyEvent.VK_R,KeyEvent.VK_C,KeyEvent.VK_M,KeyEvent.VK_D,KeyEvent.VK_ENTER,};
pressKeys(rb,ks,500);
rb.mouseMove(400,400);
rb.delay(500);
//运行DIR命令 dir enter
ks = new int[]{KeyEvent.VK_D,KeyEvent.VK_I,KeyEvent.VK_R,KeyEvent.VK_ENTER};
pressKeys(rb,ks,500);
rb.delay(1000);
//运行CLS命令 cls enter
ks = new int[]{KeyEvent.VK_C,KeyEvent.VK_L,KeyEvent.VK_S,KeyEvent.VK_ENTER};
pressKeys(rb,ks,500);
rb.delay(1000);
//运行EXIT命令 exit enter
ks = new int[]{KeyEvent.VK_E,KeyEvent.VK_X,KeyEvent.VK_I,KeyEvent.VK_T,KeyEvent.VK_ENTER};
pressKeys(rb,ks,500);
rb.delay(1000);
//右键测试
x=Toolkit.getDefaultToolkit().getScreenSize().width-10;
rb.mouseMove(x, y);
//如果是双键鼠标,请改用InputEvent.BUTTON2_MASK试试,我没有这种鼠标
pressMouse(rb,InputEvent.BUTTON3_MASK,500);
//显示日期调整对话框 a
pressKeys(rb,new int[]{KeyEvent.VK_A},1000);
rb.delay(2000);
pressKeys(rb,new int[]{KeyEvent.VK_ESCAPE},0);
rb.delay(1000);
new Thread(){
public void run(){
rb.delay(1000);
//回车
rb.keyPress(KeyEvent.VK_ENTER);
rb.keyRelease(KeyEvent.VK_ENTER);
}
}.start();
JOptionPane.showMessageDialog(null,"演示完毕!");
}
//鼠标单击,要双击就连续调用
private static void pressMouse(Robot r,int m,int delay){
r.mousePress(m);
r.delay(10);
r.mouseRelease(m);
r.delay(delay);
}
//键盘输入
private static void pressKeys(Robot r,int[] ks,int delay){
for(int i=0; i<ks.length; i++){
r.keyPress(ks[i]);
r.delay(10);
r.keyRelease(ks[i]);
r.delay(delay);
}
}
}
7. 如何用JAVA程序模拟按键
java.awt.Robot
//模拟Ctrl+Alt+Z的按下和抬起
publicvoidkeyBoardDemo()
{
神好robot.keyPress(KeyEvent.VK_CONTROL);
型瞎派robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_Z);
robot.keyRelease(KeyEvent.VK_CONTROL);
卜贺robot.keyRelease(KeyEvent.VK_ALT);
robot.keyRelease(KeyEvent.VK_Z);
}
8. Java模拟按键精灵
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
/**
* 支持脚本文件的按键控制程序
*/
public class KeySprite{
public static void main(String[] args){
String filename = "test.t";
try{
//读取配置文件
Vector v = readFile(filename);
//执行文件
parseVector(v);
}catch(IOException e){
System.out.println("配置文件错误");
}catch(Exception e){
System.out.println("其他错误");
}
}
/**
* 读取文件到Vector中
* @param filepath 文件路径
*/
public static Vector readFile(String filepath) throws IOException{
Vector v = new Vector();
//文件缓冲输入流
BufferedReader br = new BufferedReader(
new InputStreamReader(
new FileInputStream(filepath)));
//读取数据
String s = br.readLine();
while(s != null){
//添加到v
v.add(s);
//读取下一行
s = br.readLine();
}
//关闭输入流
br.close();
//返回数据
return v;
}
/**
* 解析读到的Vector,并执行对应的操作
* @param v Vector对象
*/
public static void parseVector(Vector v){
int size = v.size();
try{
//创建Robot对象
Robot r = new Robot();
for(int i = 0;i < size;i++){
String s = (String)v.get(i);
//分解
String[] data = s.split(" ");
//解析执行
if(data[0].equals("移动")){
//获得坐标
int x = Integer.parseInt(data[1]);
int y = Integer.parseInt(data[2]);
//移动
r.mouseMove(x,y);
}else if(data[0].equals("按键")){
//获得按键种类
char c = data[1].toLowerCase().charAt(0);
//按键
r.keyPress(c);
//释放
r.keyRelease(c);
}else if(data[0].equals("暂停")){
//获得暂停时间
int time = Integer.parseInt(data[1]);
//暂册梁停
Thread.sleep(time);
}
}
}catch(Exception e){
e.printStackTrace();
}
}
}
脚本文件test.t
暂停 1000
移动 200 300
暂停 1000
移动 210 300
暂停 1000
移动 220 300
暂停 1000
移动 230 300
暂停 1000
移动 240 300
暂停 1000
移动 250 300
暂停 1000
移动 260 300
暂停 1000
移动 270 300
暂停 1000
移动 280 300
暂州简运咐段停 1000
移动 290 300
暂停 1000
移动 300 300
暂停 1000
移动 310 300
9. 用Java 或者VB 知道一个网页按钮的ID和类之后 怎么模拟出点击和选择的功能
整体思路
模拟鼠标点击
获取坐州肢标
OK请推荐
import
java.awt.*;
import
java.awt.event.*;
import
javax.swing.*;
public
class
TestFrame
extends
JFrame
{
private
JButton
btn1
=
new
JButton("Button
1");
private
JButton
btn2
=
new
JButton("Button
2");
private
Robot
robot;
public
TestFrame()
{
setLayout(new
GridLayout(0,
1));
add(btn1);
add(btn2);
btn1.addMouseListener(new
MouseAdapter()
{
public
void
mouseClicked(MouseEvent
event)
{
if
(event.getButton()
==
MouseEvent.BUTTON1)
System.out.println(btn1.getText()
+
"鼠标左键册陪世点击");
if
(event.getButton()
==
MouseEvent.BUTTON3)
System.out.println(btn1.getText()
+
"鼠标右键点击");
}
});
btn2.addMouseListener(new
MouseAdapter()
{
public
void
mouseClicked(MouseEvent
event)
{
if
(event.getButton()
==
MouseEvent.BUTTON1)
System.out.println(btn2.getText()
+
"鼠标左键点击");
if
(event.getButton()
==
MouseEvent.BUTTON3)
System.out.println(btn2.getText()
+
"鼠标右键点击");
}
});
addMouseMotionListener(new
MouseMotionAdapter()
{
public
void
mouseMoved(MouseEvent
event)
{
}
});
}
public
void
simulationClick()
throws
AWTException
{
//模乱卖拟鼠标点击代码
Point
p1
=
btn1.getLocation();
Point
p2
=
btn2.getLocation();
System.out.println(p1.x
+
","
+
p1.y);
System.out.println(p2.x
+
","
+
p2.y);
Point
p
=
MouseInfo.getPointerInfo().getLocation();
int
x
=
p.x;
int
y
=
p.y;
robot
=
new
Robot();
System.out.println(x
+
","
+
y);
robot.mouseMove(p1.x
+
10,
p2.y
+
10);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.mouseMove(x,
y);
}
public
static
void
main(String[]
args)
{
EventQueue.invokeLater(new
Runnable()
{
public
void
run()
{
TestFrame
frame
=
new
TestFrame();
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
try
{
frame.simulationClick();
}
catch
(AWTException
e)
{
e.printStackTrace();
}
}
});
}
}
10. java事件模拟什么意思
java事件模拟是一种人机交互模型。它有三个基本要素:
1、事件源(EventSource):即事件发生的场所,就是指如李各个组件,如按钮等,点击按钮其实就是组件上发生的一个事件。
2、事件(Event):事件封装了组件上发生的事情,比如举山按钮单击、按钮松开等等。
3、事件监听器(正橡中EventListener):负责监听事件源上发生的特定类型的事件,当事件到来时还必须负责处理相应的事件。