最近要操作浏览器的插件,selenium做不到,发现sikuli可以。
网上找了sikuliScript的博文,看得云里雾里,于是自己写了一个
sikuli的定位方法是图片匹配,它自己截屏,然后根据你给的局部图片,确定焦点应该在哪里。
下面开干:
1.加载jar包,下载地址:https://download.csdn.net/download/ak01_10/14935512
2.写测试类
import java.util.HashMap;
import java.util.Map;
import org.openqa.selenium.PageLoadStrategy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.sikuli.script.FindFailed;
import org.sikuli.script.Pattern;
import org.sikuli.script.Screen;
public class TestSikuli {
public static void main(String[] args) {
try{
Screen s = new Screen();
//图片路径
//自己截图,图片名称、位置随便你定
//sikuli自动会截屏,然后根据你给的图片,定位到焦点
Pattern p1=new Pattern("D:/DevSoft/text.png");//输入框
Pattern p2=new Pattern("D:/DevSoft/btn.png");//百度一下按钮
//获取selenium driver
System.setProperty("webdriver.chrome.driver","chromedriver.exe的全路径");
ChromeOptions options = new ChromeOptions();
options.setPageLoadStrategy(PageLoadStrategy.NORMAL);
// 关闭通知弹窗
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("profile.default_content_setting_values.notifications", 2);
options.setExperimentalOption("prefs", prefs);
WebDriver driver = new ChromeDriver(options);
driver.manage().window().maximize();
driver.get("https://www.baidu.com");
//等待百度输入框加载完
s.wait(p1,10);
//在输入框里输入search java api
s.type(p1,"search java api");
//点击百度一下
s.click(p2);
}catch(FindFailed e){
e.printStackTrace();
}
}
}