sikuli的官网地址:http://www.sikuli.org

首先下载sikuliX的jar包:https://launchpad.net/sikuli/sikulix/1.1.0

java-doc:http://nightly.sikuli.de/docs/index.html

官网用法介绍:http://www.sikulix.com/quickstart.html

需求:

1.打开百度地图

2.切换城市到郑州

3.使用测距工具

4.测量绿城公园--郑州植物园的距离

前序工作:

1.导入jar包:sikulixsetup-1.1.0.jar

2.在cmd中运行该jar包。java -jar sikulixsetup-1.1.0.jar,则会出现如下图,选择相应选项后,启动会下载sikulixapi.jar。不然会报错:libs to export not found on above classpath: /sikulixlibs/mac/libs64

3.启动成功后会出现如下提示

4.截图,即代码中需要用到的出发位置,终点位置

接下来我们编写代码:

package com.sikuli;

import java.io.File;
import java.util.concurrent.TimeUnit; import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.safari.SafariDriver;
import org.sikuli.script.FindFailed;
import org.sikuli.script.Pattern;
import org.sikuli.script.Screen; /**
* @author QiaoJiafei
* @version 创建时间:2016年4月5日 下午6:43:55
* 类说明
*/
public class TestSikuli { public static void main(String[] args) {
// TODO Auto-generated method stub
testBaiDuMap();
} /**
* @Title: testBaiDuMap
* @Description: TODO
* @return void
* @throws
*/
private static void testBaiDuMap() {
// TODO Auto-generated method stub
WebDriver dr = new SafariDriver(); dr.manage().window().maximize();
dr.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
dr.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS); dr.get("http://map.baidu.com/");
//打开城市选择下拉框
dr.findElement(By.id("tool-container")).findElement(By.id("ui3_city_change")).findElement(By.tagName("a")).click();//.findElement(By.tagName("em")).click();
//选择H省
dr.findElement(By.id("selCityLetterListId")).findElement(By.linkText("H")).click();
//选择郑州
dr.findElement(By.id("selCityPlaceListId")).findElement(By.linkText("郑州")).click();; //打开工具下拉框
dr.findElement(By.id("tool-container")).findElement(By.xpath("//i[text()='工具']")).click();
//选择测距
dr.findElement(By.id("boxul")).findElement(By.xpath("//i[text()='测距']")).click(); Screen screen = new Screen();
String frompng = "/Users/qiaojiafei/Documents/qiaojiafei/jarfile/sikuli/testphoto/from.png";
String topng = "/Users/qiaojiafei/Documents/qiaojiafei/jarfile/sikuli/testphoto/to.png";
Pattern from = new Pattern(frompng);
Pattern to = new Pattern(topng); try {
if(screen.find(from) != null) {
screen.click(from);
}
if(screen.find(to) != null) {
screen.click(to);
}
screen.doubleClick();
} catch (FindFailed e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } }

可以在代码中加入:

import org.sikuli.basics.Debug;

Debug.setDebugLevel(3);

查看控制台sikuli的执行过程log

selenium结合sikuliX操作Flash网页的更多相关文章

  1. Selenium+Java - 结合sikuliX操作Flash网页

    前言 前天被一个Flash的轮播图,给玩坏了,无法操作,后来请教了下crazy总拿到思路,今天实践了下,果然可以了,非常感谢! 模拟场景 打开百度地图 切换城市到北京 使用测距工具 测量 奥林匹克森林 ...

  2. 使用selenium 模拟人操作请求网页

    首先要 pip install selenium  安装插件 然后要下载驱动驱动根据你的浏览器 Chrome  selenium 驱动下载地址 http://chromedriver.storage. ...

  3. selenium自动化过程中如何操作Flash动画

    最近在看python的爬虫框架(scrapy),一个词概括就是:"酸爽"!等把selenium自动化版块讲完后,打算写一写关于scrapy相关的知识,打算从源码角度解析下scrap ...

  4. C#操作Flash动画

    对于在C#开发的过程中没有接触过Flash相关开发的人员来说,没有系统的资料进行学习,那么这篇文档针对于初学者来说是很好的学习DEMO. 本文章中的DEMO实现了C#的COM控件库中本来就带有对fla ...

  5. selenium鼠标悬停操作

    有些网页一打开会有一个弹窗,弹窗不消失无法进行取元素操作,只有把鼠标悬停在上面弹窗才会消失,这时就用到了selenium的悬停操作 鼠标悬停  move_to_element() 定位到要悬停的元素 ...

  6. selenium窗口截图操作

    selenium窗口截图操作 使用背景:在自动化测试过程中,可能遇到执行错误情况,那么怎么样及时捕获出错信息/界面? 可以使用  get_screenshot_as_file(self,filenam ...

  7. selenium控制浏览器操作

    selenium控制浏览器操作 控制浏览器有哪些操作? 控制页面大小 前进.后退 刷新 自动输入.提交 ........  控制页面大小,实例: # -*- coding:utf-8 -*- from ...

  8. Selenium Web元素操作

    我们定位到Web页面元素之后,可以对元素进行一系列的操作,实现跟页面的交互.包括点击.文本输入.元素属性获取等.常用的方法列举如下: 方法 描述 click() 点击元素 send_keys(**va ...

  9. scrapy和selenium结合抓取动态网页

    1.安装python (我用的是2.7版本的) 2.安装scrapy:   详情请参考 http://blog.csdn.net/wukaibo1986/article/details/8167590 ...

随机推荐

  1. ZOOM - 简单易用的 jQuery 照片相册插件

    jQuery 最令人印象深刻的应用之一就是对图片的处理,它可以让帮助你在你的项目中加入一些让人惊叹的图片切换效果.ZOOM 是一款全屏效果的 jQuery 图片切换展示插件,支持键盘前后按键切换,支持 ...

  2. swift学习笔记之-扩展(Extensions)

    //扩展(Extensions) import UIKit /*扩展(Extensions):扩展 就是为一个已有的类.结构体.枚举类型或者协议类型添加新功能.这包括在没有权限获取原始源代码的情况下扩 ...

  3. .Net资源总结

    源码文档见官方群(以下为7.4更新内容) 逆天工具 CDN 资源库 国内 Bootstrap中文网开源项目免费 CDN 服务 360网站卫士常用前端公共库CDN服务 百度静态资源公共库 新浪云计算CD ...

  4. python任务执行之线程,进程,与协程

    一.线程 线程为程序中执行任务的最小单元,由Threading模块提供了相关操作,线程适合于IO操作密集的情况下使用 #!/usr/bin/env python # -*- coding:utf-8 ...

  5. webstorm常用的快捷键总结

    1. ctrl + shift + n: 打开工程中的文件,目的是打开当前工程下任意目录的文件. 2. ctrl + j: 输出模板 3. ctrl + b: 跳到变量申明处 4. ctrl + al ...

  6. 如何为基于windows验证的站点的某个页面、文件或文件夹单独设置匿名访问

    在MOSS的项目中,我们经常碰到要单独为基于windows验证的站点的某个页面.文件或文件夹单独设置匿名访问即不登录就可以直接访问.比如说站点的A的某些图片或文件URL存在B站点下的文件夹下.此时访问 ...

  7. Android 4.4沉浸式状态栏的实现

    要实现Android 4.4上面的沉浸式状态栏要用到开源项目SystemBarTint(https://github.com/hexiaochun/SystemBarTint) public clas ...

  8. Web应用程序系统的多用户权限控制设计及实现-权限模块【10】

    前五章均是从整体上讲述了Web应用程序的多用户权限控制实现流程,本章讲述Web权限管理系统的权限配置模块.页面模块涉及到的数据表为权限表.权限配置模块是按照用户组和页面,栏目结合组成的.通过配置一个用 ...

  9. iOS UITableView , UITableViewController ,UITableViewCell实现全国各省市遍历,选择相应的地区

    我们先看一下效果                   代码如下 首先是第一个页面 rootTableViewController.h #import <UIKit/UIKit.h> #im ...

  10. ASP.NET中常用的几个李天平开源公共类LTP.Common,Maticsoft.DBUtility,LtpPageControl

    ASP.NET中常用的几个开源公共类: LTP.Common.dll: 通用函数类库     源码下载Maticsoft.DBUtility.dll 数据访问类库组件     源码下载LtpPageC ...