转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/

Sikulix(以前叫Sikuli)在Mac电脑的环境配置步骤如下:

1、从官网上下载Sikulix最新版本(目前为1.1.0)->下载地址(或者看这里)->下载sikulixsetup-1.1.0.jar (md5)(包名可能略有差别这无所谓);

2、在桌面新创建一个文件夹,命名为Sikulix;

3、把下载的sikulixsetup-1.1.0.jar文件放在Sikulix文件夹下,双击打开;

4、选择你要安装的,我选择了前两项:

5、点击“Setup Now”进行自动安装;

6*、如果过程中出现下载失败的提示,是因为电脑的安全设置造成的。需要手动下载这些提示下载失败的文件(点击进入下载页面)。

7*、手动下载完成后,将下载的文件全都转移到桌面的Sikulix文件夹内,然后重新打开sikulixsetup-1.1.0.jar文件进行安装,随提示一路“Yes”即可。

环境配置至此已经基本完成,下面就可以在Sikulix文件夹中双击打开Sikulix IDE进行使用了:

下面我用传奇霸业这款游戏做一下示范,点到为止(打开网页,然后选择左侧栏中的鼠标动作,对需要点击的网页元素进行按序截图):

点击运行,就可以在浏览器中看到我们录制的操作自动运行了。

这就是Sikulix的威力,通过识别图像的方式来实现自动化。详细的介绍和文档,可以看看官方的教程。

Sikulix还可以通过Java进行编程,下面我来介绍一下JAVA环境的配置(在安装好JDK之后):

1、查找JAVA_HOME的路径:which java->/usr/bin/java->cd /usr/bin->ls -l|grep java->cd /System/Library/Frameworks/JavaVM.framework/Versions/Curr(tab)->CurrentJDK->ls->cd Home->pwd->这就是JAVA_HOME路径;

2、配置JAVA_HOME的路径:vi ~/.bash_profile->i->配置JAVA_HOME路径到配置文件即完成了配置。

至此,Java的环境就配好了。打开Eclipse,新建项目,如果遇到了Java.lang.Object空引用错误:

1*、修改Eclipse Preference设置->Compiler的java版本号,使和你安装的Java版本一致(我这里装的是1.6,所以Compiler选择1.6);

2*、修改Eclipse Preference设置->Installed JREs->Add->Standard VM->JRE Home->填写JAVA_HOME路径;

3*、重启Eclipse;

4、新建项目,之后就可以按照Sikulix api进行编程了,这里为了更好实现网页flash的自动化,还用到java自己的Robot类。至于准备工作,我们事先需要把Skulix文件夹下的SikulixApi的jar包复制粘贴到当前项目的lib文件夹下(没有的话就创建一个),然后项目上点右键->build configuration一下,把复制粘贴的这些jar包文件都导进来。之后就可以在项目中import相关的库了。

下面拿传奇霸业这款游戏做例子,实现自动打副本的这样一个辅助。首先用一个UserInfo类来封装用户名和密码:

import java.util.Set;public class UserInfo {String userName;String passWord;public UserInfo() {this.userName = "用户名";this.passWord = "密码";}
}

用Sikulix实现自动化的过程要注意图片元素的截取,不要用QQ截图之类的工具,要用Sikulix IDE来截图,然后把截图转移到专门的目录下:

之后在程序中就可以让Sikuli通过这些图片对应的路径来识别图片,并在网页上找到对应的图形元素,实现自动化点击等操作了:

import java.awt.AWTException;import java.awt.Robot;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;
import org.sikuli.script.*;
import com.opera.core.systems.internal.input.KeyEvent;

public class Test {public static void main(String[] args) throws FindFailed,InterruptedException, IOException, AWTException {Screen screen = new Screen();String imgPath = "/Users/tylan/Desktop/SikuliPics/test";
        String chromeImg = imgPath + "/chrome.png";String newTabImg = imgPath + "/newTab.png";String startImg = imgPath + "/start.png";String loginImg = imgPath + "/login.png";String fubenImg = imgPath + "/fuben.png";String bloodImg = imgPath + "/blood.png";String backHomeImg = imgPath + "/backHome.png";String zumaReadyImg = imgPath + "/zumaReady.png";String jinruFubenImg = imgPath + "/jinruFuben.png";//Visit the CQ site.
        screen.wait(chromeImg).click();screen.wait(newTabImg).click();screen.type("http://cqby.wan.360.cn/game_login.php?server_id=S577&&src=loginhistory");Robot robot = new Robot();robot.keyPress(java.awt.event.KeyEvent.VK_ENTER);//Login the game.screen.wait(startImg, 10).click();Thread.sleep(1000);UserInfo uInfo = new UserInfo();screen.type(uInfo.passWord);Thread.sleep(2000);screen.wait(loginImg).click();//Navigate to the fuben.screen.wait(bloodImg, 10);screen.wait(backHomeImg, 3).click();Thread.sleep(1000);screen.wait(fubenImg, 5).click();screen.wait(zumaReadyImg, 2).click();screen.wait(jinruFubenImg, 1).click();Thread.sleep(3000);robot.keyPress(java.awt.event.KeyEvent.VK_Z);    }
}

要控制好不同操作之间时间的间隔,控制好等待时间,才能顺利的实现预期的自动化效果。Sikuli是根据图形元素来实现自动化的,所以一定要确保这些图形元素的样式是可以找到的,背景颜色的变化等因素都会影响到自动化能否顺利进行下去。

Mac环境下用Java(Sikuli+Robot)实现页游自动化相关推荐

  1. Mac环境下配置Java开发环境(jdk+maven+tomcat+idea)

    记录下在Mac环境下配置java开发环境,包括jdk,maven,tomcat和idea 下载及安装jdk 首先到官网下载jdk,这里就用目前官网最新的9.0.4 无脑双击安装就可以: 配置jdk 进 ...

  2. mac环境下node.js和phonegap/cordova创建ios和android应用

    mac环境下node.js和phonegap/cordova创建ios和android应用 一介布衣  2015-01-12   nodejs  6888 分享到:QQ空间新浪微博腾讯微博人人网微信 ...

  3. SnowflakeIdWorker类中SystemUtils.getHostName()在Mac环境下为空,导致空指针异常

    一.错误记录 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with na ...

  4. Mac环境下SVN实战

    在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境.在Mac环境下,由于Mac自带了svn的服务器端和客户端功能,所以我们可以在不装任何第三方软件的前提下使用svn功能,不过还 ...

  5. Ionic制作Hybrid App系列一:Mac环境下Ionic的搭建

    最近公司项目要做app.由于开发时间较短,并且要出web,android和ios三个版本,经过考虑后决定尝试用Hybrid App的开发方式.说到Hybrid App(混合应用),什么是混合应用? 混 ...

  6. 如何在Mac环境下搭建svn服务器端环境

    为什么80%的码农都做不了架构师?>>>    在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境.在Mac环境下,由于Mac自带了svn的服务器端和客户端功 ...

  7. Mac环境下svn的使用

    CHENYILONG Blog Mac环境下svn的使用 Mac环境下svn的使用 在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境.在Mac环境下,由于Mac自带了svn的 ...

  8. Mac环境下Docker及Splash的安装运行教程

    一.前言 由于最近使用Python爬虫框架scrapy练习爬虫,在爬取动态网页的时候,需要用到splash,进行对动态网页进行JavaScript渲染,但是使用splash又必须安装Docker.因为 ...

  9. mac 环境下 制作windows系统U盘启动盘

    mac 环境下 制作windows系统U盘启动盘 下载系统文件   ylmf.iso 转换为img文件 hdiutil convert /Users/os/Downloads/ylmf.iso -fo ...

最新文章

  1. Cutting Sticks UVA - 10003
  2. centos7 各版本区别 DVD Netinstall Everything Minimal GnomeLive KdeLive
  3. Linux 查找redis进程命令:ps -ef | grep redis
  4. 基于表达式的访问控制
  5. 包包各部位名称图解_品尝烤肉必备!日本和牛各部位名称中日翻译对照 点餐更轻松...
  6. “约见”面试官系列之常见面试题之第七十六篇之vue-router中的路由钩子函数基本用法 (建议收藏)
  7. California Fault Lines: Understanding the Causes and Impact of Network Failures
  8. JavaScript | 如何为变量分配十进制,八进制和十六进制值?
  9. Win32汇编基础1
  10. Linux C/C++开发环境搭建指针
  11. Response AddHeader使用实例
  12. 高等数学习题全解指南下册同济第七版课后习题答案
  13. FL studio 20简易入门教程 -- 第六篇 -- 调音台和自动化包络线
  14. c语言八大排序算法详细版
  15. 台式计算机usb口不识别鼠标,答疑解惑:USB鼠标无法被电脑识别怎么办
  16. 离线强化学习(Offline RL)系列2: (环境篇)D4RL数据集简介、安装及错误解决
  17. whois php,域名whois php
  18. 【Docker学习笔记 二】Docker安装、运行流程与常用命令
  19. 2022杭电多校八 1011-Stormwind(贪心)
  20. React 环境搭建以及创建项目工程(一)

热门文章

  1. 从全球最赚钱的20家公司,我们可以发现什么?
  2. 面部识别技术走到十字路口?
  3. 中国机器人产业发展报告(2018)正式发布!
  4. 邬贺铨:工业物联网的技术与前景
  5. 程序员的成长过程 | 每日趣闻
  6. 知乎热帖:Qt 这么强大为什么火不起来?
  7. RSA解密时javax.crypto.BadPaddingException: Data must start with zero
  8. Confluence 6 重构 ancestor 表
  9. 量子的飞跃:下一代D-Wave量子芯片计算速度能快1000倍
  10. 小猿圈linux之运维工程师面试题(答案版)