前言

Sikuli-IDE用起来方便,但是用到实际项目中还是有局限性的,Sikuli提供了Sikuli-Script的jar包,在Sikuli-X的安装目录下,这样就可以在Idea中使用JAVA编写代码了,并用Sikuli-Script和selenium完美结合使用。

模拟场景

  1. 打开百度地图
  2. 切换城市到北京
  3. 使用测距工具
  4. 测量 奥林匹克森林公园 —— 北京南苑机场 的距离

安装配置

  • 首先下载sikuliX的jar包:https://launchpad.net/sikuli/sikulix/1.1.0
  • 导入jar包:sikulixsetup-1.1.0.jar
  • 双击java -jar sikulixsetup-1.1.0.jar,则会出现如下图,选择相应选项后,启动会下载sikulixapi.jar。不然会报错:libs to export not found on above classpath: /sikulixlibs/mac/libs64

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

  • 截取起点位置和终点位置的图片

sikuli操作Flash网页

具体示例代码如下;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver; import java.util.concurrent.TimeUnit; import org.sikuli.script.FindFailed;
import org.sikuli.script.Pattern;
import org.sikuli.script.Screen;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test; /**
* @rongrong
* Selenium结合sikuliX操作Flash网页案例
*/
public class TestSikuli { WebDriver driver; @BeforeClass
public void beforeClass() {
System.setProperty("webdriver.chrome.driver", "driver/chromedriver.exe");
driver = new ChromeDriver();
} @Test
public void testBaiDuMap() {
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
driver.get("http://map.baidu.com/");
//打开城市下拉框
driver.findElement(By.cssSelector(".ui3-city-change-inner")).click();
//选择北京
driver.findElement(By.cssSelector("[citycode='131']")).click();;
// 打开工具下拉框
driver.findElement(By.cssSelector("[map-on-click='box'] em")).click();
// 选择测距
driver.findElement(By.cssSelector("[map-on-click='measure'] i")).click();
Screen screen = new Screen();
String start = "D:\\picture\\奥林匹克森林公园.png";
String end = "D:\\picture\\北京南苑机场.png";
Pattern from = new Pattern(start);
Pattern to = new Pattern(end);
try {
if (screen.find(from) != null) {
screen.click(from);
}
if (screen.find(to) != null) {
screen.click(to);
}
screen.doubleClick();
} catch (FindFailed e) {
e.printStackTrace();
}
}
}

运行效果如下:

Selenium+Java - 结合sikuliX操作Flash网页的更多相关文章

  1. selenium结合sikuliX操作Flash网页

    sikuli的官网地址:http://www.sikuli.org 首先下载sikuliX的jar包:https://launchpad.net/sikuli/sikulix/1.1.0 java-d ...

  2. Selenium+java - 调用JavaScript操作

    前言 在做web自动化时,有些情况selenium的api无法完成,需要通过第三方手段比如js来完成实现,比如去改变某些元素对象的属性或者进行一些特殊的操作,本文将来讲解怎样来调用JavaScript ...

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

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

  4. java selenium webdriver处理JS操作窗口滚动条

    未经作者允许,禁止转载!!! java selenium webdriver处理JS操作窗口滚动条 java selenium webdriver处理JS操作窗口滚动条 import org.open ...

  5. selenium+java破解极验滑动验证码的示例代码

    转自: https://www.jianshu.com/p/1466f1ba3275 selenium+java破解极验滑动验证码 卧颜沉默 关注 2017.08.15 20:07* 字数 3085  ...

  6. 利用Selenium+java实现淘宝自动结算购物车商品(附源代码)

    转载请声明原文地址! 本次的主题是利用selenium+java实现结算购买购物车中的商品. 话不多说,本次首先要注意的是谷歌浏览器的版本,浏览器使用的驱动版本,selenium的jar包版本.   ...

  7. selenium第一课(selenium+java+testNG+maven)

    selenium介绍和环境搭建 一.简单介绍 1.selenium:Selenium是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包 ...

  8. C#操作Flash动画

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

  9. selenium+Java使用内容记录(全)

    1.模拟键盘操作,使用enter键 2.等待几秒 3.浏览器最大化 4.获取cookie,删除cookie 5.模拟鼠标 6.selenium+java 识别验证码(数字+字母组合) 7.seleni ...

随机推荐

  1. 有意思的 CDN

    Clean Clean false 7.8 磅 0 2 false false false EN-US ZH-CN AR-SA /* Style Definitions */ table.MsoNor ...

  2. 补习系列(22)-全面解读 Spring Profile 的用法

    目录 一.简介 二. 区分Bean对象 三. 设置Profile 3.1 WebApplicationInitializer接口 3.2 通过 web.xml定义 3.3 JVM启动参数 3.4 环境 ...

  3. Spring Cloud Alibaba | Sentinel: 分布式系统的流量防卫兵初探

    目录 Spring Cloud Alibaba | Sentinel: 分布式系统的流量防卫兵初探 1. Sentinel 是什么? 2. Sentinel 的特征: 3. Sentinel 的开源生 ...

  4. AKKA 集群中的发布与订阅Distributed Publish Subscribe in Cluster

    Distributed Publish Subscribe in Cluster 基本定义 在单机环境下订阅与发布是很常用的,然而在集群环境是比较麻烦和不好实现的: AKKA已经提供了相应的实现,集群 ...

  5. 关于MarkDownPad2安装遇到的一些问题

    关于MarkdownPad MarkdownPad是Windows下的一个多功能Markdown编辑器.即时看到你的Markdown文件,当你创建它们的时候,看起来就像是在HTML中的一样.当您输入时 ...

  6. ADO.NET_包括DataReader和dataSet的使用

    今天总结了一下ADO.NET编程中DataReader和dataSet两个比较重要的对象的使用,完成了combobox,listbox,以及fpSpread动态添加数据的测试,对使用sqlComman ...

  7. Excel催化剂开源第30波-在Excel上尽情地使用LINQ

    对于笔者这样的数据分析工作者来说,对数据库有较深的掌握,当然少不了对SQL查询的深度使用,如果在编程的世界中,可以复用这样的能力,真的是一件多么令人高兴的事情. 在.Net的世界中,恰恰提供了这样的能 ...

  8. Scrapy爬虫框架与常用命令

    07.08自我总结 一.Scrapy爬虫框架 大体框架 2个桥梁 二.常用命令 全局命令 startproject 语法:scrapy startproject <project_name> ...

  9. HBase的优化

    HBase的优化 高可用 在 HBase 中 Hmaster 负责监控 RegionServer 的生命周期,均衡 RegionServer 的负载,如果 Hmaster 挂掉了,那么整个 HBase ...

  10. 从0系统学Android-2.4隐式Intent

    本系列文章,参考<第一行代码>,作为个人笔记 更多内容:更多精品文章分类 使用隐式 Intent 相对于显示 Intent ,隐式 Intent 比较含蓄.这种方式不明确指出我们想要启动哪 ...