sikuli实例
代码:
package selenium.sikuli; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.sikuli.script.FindFailed;
import org.sikuli.script.Screen;
import org.sikuli.script.Settings;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test; public class Practice {
WebDriver driver; // @BeforeMethod
// public void begin(){
// System.out.println("执行测试之前");
// } @Test
public void Login() throws FindFailed, InterruptedException{
System.setProperty("webdriver.firefox.bin", "D:\\ruanjian\\Firefox\\azml\\firefox.exe");
//打开火狐浏览器
driver= new FirefoxDriver(); // System.setProperty("webdriver.firefox.bin", "D:\\ruanjian\\Firefox\\azml\\firefox.exe");
// WebDriver driver;
// //实例化火狐,即打开火狐浏览器
// driver= new FirefoxDriver();
//String url = "http://localhost:8080/portal/main/domain/index.htm";
String url = "https://www.yuncourt.com/portal/main/domain/index.htm";
//打开网页
driver.get(url);
//打开窗口
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
System.out.println("执行到这里啦");
Screen screen = new Screen(); //screen.wait("src/img/firefox.png",20);
//绝对路径
//String imgpath = "D:\\study\\eclipse\\workspace\\test-sikuli-java\\src\\image\\";
//相对路径
String imgpath = ".\\src\\image\\";
screen.click(imgpath+"login.png");
Thread.sleep(2000);
//输入用户名
screen.type(imgpath+"loginName.png","18698580755");
//输入密码
screen.type(imgpath+"loginPassword.png","a111111");
//点击登录
screen.click(imgpath+"login_click.png"); driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
String str = driver.findElement(By.xpath("/html/body/div[3]/div/div/div/a[1]")).getText();
System.out.println(str);
driver.findElement(By.xpath("/html/body/div[3]/div/div/div/a[1]")).click(); // String imgpath1 = ".\\src\\image.information\\";
// screen.click(imgpath1+"accuser.png");
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); } }
例子2:打开谷歌》打开百度一下链接》输入sikuli》进行百度(运行成功)
public class TestSikuli {
@Test
public static void openPage() throws FindFailed, InterruptedException {
Screen s = new Screen();
//定义图片存放路径
//方法一 绝对路径
String imgpath = "D:\\study\\eclipse\\workspace\\test-sikuli-java\\src\\image\\";
//方法二 相对路径
//String imgpath = ".\\src\\image\\";
//双击桌面chrome浏览器图标
s.doubleClick(imgpath+"chrome.png");
s.click(imgpath+"baidu.png");
Thread.sleep(2000);
//在输入框输入搜索关键字:sikuli,并点击搜索按钮
//s.type(imgpath+"search_input.png", "sikuli");
s.find(imgpath+"search_input.png");
s.paste(imgpath+"search_input.png", "sikuli");
s.click(imgpath+"search_button.png");
System.out.println("end");
}
}
sikuli实例的更多相关文章
- 最近学习工作流 推荐一个activiti 的教程文档
全文地址:http://www.mossle.com/docs/activiti/ Activiti 5.15 用户手册 Table of Contents 1. 简介 协议 下载 源码 必要的软件 ...
- sikuli+java实例
新建java工程,导入sikuli-script.jar包 public class TestSikuli { public static void openPage() throws FindF ...
- sikuli+eclipse实例
设置sikuli环境变量 如果在执行脚本的时候出现以下错误: Getting the VisionProxy.dll: Can not find dependent libraries... 把Sik ...
- selenium 配合sikuli script操作高德地图
会不会使用工具,是一般QA和高级QA的区别 ---To be crazy Java就是好,开源框架遍地都是,各种niubility的jar包,各种神器,真是不亦乐乎. 今天研究一下基于图片识别作为对象 ...
- Sikuli:创新的图形化编程技术
Sikuli是一种使用截图进行UI自动化测试的技术.Sikuli包括sikul脚本,基于Jython的API以及sikuli IDE.Sikuli可以实现任何你可以在显示器上看到ui对象的自动化,你可 ...
- 基于Sikuli GUI图像识别框架的PC客户端自动化测试实践
写在前面 最近两天,公司有个PC客户端的测试任务,除了最基础的功能测试外,还包括稳定性测试和兼容性测试需求.刚好去年接触过Sikuli这款基于GUI图像识别框架的自动化测试工具,于是便应用于测试工作中 ...
- js-静态、原型、实例属性
本篇来说一下js中的属性: 1.静态属性 2.原型属性 3.实例属性 静态属性: function klass(){} var obj=new klass(); klass.count=0; klas ...
- ZIP压缩算法详细分析及解压实例解释
最近自己实现了一个ZIP压缩数据的解压程序,觉得有必要把ZIP压缩格式进行一下详细总结,数据压缩是一门通信原理和计算机科学都会涉及到的学科,在通信原理中,一般称为信源编码,在计算机科学里,一般称为数据 ...
- EntityFramework Core 1.1是如何创建DbContext实例的呢?
前言 上一篇我们简单讲述了在EF Core1.1中如何进行迁移,本文我们来讲讲EF Core1.1中那些不为人知的事,细抠细节,从我做起. 显式创建DbContext实例 通过带OnConfiguri ...
随机推荐
- python-ansible
http://sofar.blog.51cto.com/353572/1579894 http://www.aikaiyuan.com/6299.html http://docs.ansible.co ...
- 【转】C#程序打包安装部署之添加注册表项
今天为大家整理了一些怎样去做程序安装包的具体文档,这些文档并不能确保每个人在做安装包的时候都能正确去生成和运行,但是这些文档的指导作用对于需要的朋友来说还是很有必要的,在实际产品的安装部署过程中可能有 ...
- android 旋转手机的时候,如何忽略onCreate再次被系统调用?
实现一个程序,主要是不想在手机横竖屏的时候重新onCreate,所以在配置文件中增加了配置选项: android:configChanges="orientation|keyboardHid ...
- C# 如何通过拼接XML调用存储过程来优化系统性能
平常新增多条记录,需要多次访问数据库,这样会影响性能:如果把新增的数据拼接成XML形式,作为参数传给存储过程来处理,这只访问数据库一次,执行速度会快很多. 1.C#代码如下:XML拼接的字段不能出现& ...
- Java 权限修饰符
Java应用有很多类,但有些类并不希望被其他类使用.每个类中都有数据成员和方法成员,但是并不是每个数据和方法,都允许在其他类中调用.如何能做到访问控制呢?就需要使用访问权限修饰符. Java语言中的访 ...
- startActivityForResult用法详解
一.如果想在Activity中得到新打开Activity 关闭后返回的数据,需要使用系统提供的startActivityForResult(Intent intent, int requestCode ...
- SOCKET:SO_LINGER 选项
好多次接触到SO_LINGER选项,但总是忘了这是干什么用的.现在整理一下,我才明白这个参数是用来设定“SOCKET在CLOSE时候是否等待缓冲区发送完成”这个特性的.下面是一些详细的说明. sets ...
- 带Cookie的 WebClient
/// <summary> /// WebClient的扩展 /// </summary> public class webClient : WebClient { /// & ...
- Struts2 - Check Login Interceptor
Struts2使用Interceptor做用户登陆检查: 1)新增一个bean: User.java package com.my.beans; import java.util.Date; impo ...
- LintCode "Coins in a Line"
Recursion + Memorized Search(DP). And apparently, the code below can be iterative with only 3 vars - ...