软件测试神一样的超级好用的selenium 原创java util
2013-12-26 11:04
363 查看
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.TakesScreenshot;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.By;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;
public class SeleniumUtil {
private static WebDriver webDriver;
private static WebElement webElement;
private static Robot robot;
private static By byelement;
//javascript
public void Script ( String script , WebElement element ) {
JavascriptExecutor js=(JavascriptExecutor)webDriver;
if ( element==null ) {
js.executeScript(script);
} else {
js.executeScript(script, element);
}
}
//javascript 返回数据
public String ScriptString ( String script ) {
JavascriptExecutor js=(JavascriptExecutor)webDriver;
String s=(String) js.executeScript(script);
return s;
}
/**
* 初始化
* @param select
* 1:Firefox
* 2:IE
* 3:Chrome
* 4:后台执行
* @param browserpath
* 选择本地浏览路径
*/
public void Init ( int switchbrowser , String browserpath ) {
switch ( switchbrowser ) {
case 1:
System.setProperty ( "webdriver.firefox.bin" , browserpath );
webDriver = new FirefoxDriver();
webDriver.manage().window().maximize();
break;
case 2:
System.setProperty("webdriver.ie.driver", browserpath);
webDriver = new InternetExplorerDriver();
webDriver.manage().window().maximize();
break;
case 3:
System.setProperty("webdriver.chrome.driver", browserpath);
webDriver = new ChromeDriver();
webDriver.manage().window().maximize();
break;
case 4:
webDriver = new HtmlUnitDriver();
break;
}
}
//复制
protected void CopyKeys() {
try {
robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_C);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_C);
} catch (AWTException e) {
e.printStackTrace();
}
}
//粘贴
protected void PasteKeys() {
try {
robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_V);
} catch (AWTException e) {
e.printStackTrace();
}
}
/**
* 拖拽
* @param by 要多拽的元素
* @param target 目的地
*/
protected void DragAndDrop ( By by , By target ) {
(new Actions(webDriver)).dragAndDrop(webDriver.findElement(by), webDriver.findElement(target)).perform();
}
//传入值
protected void SendKeys(By by, String value){
webDriver.findElement(by).sendKeys(value);
}
/**
* 截图
* @param outpath 导出截图后的路径 文件名是以当前时间
*/
public void GetScreen ( String outpath ) {
File screenShotFile = ((TakesScreenshot)webDriver).getScreenshotAs(OutputType.FILE);
try {
FileUtils.copyFile(screenShotFile, new File ( outpath + "/" + getSysTime() + ".jpg" ) );
} catch (IOException e) {
e.printStackTrace();
}
}
/**获取元素
* @param by
* @param second 查找需要时间
*/
public void Wait( final By by , int second ) {
WebDriverWait wait = new WebDriverWait(webDriver,second);
wait.until(new ExpectedCondition<WebElement>(){
public WebElement apply(WebDriver d) {
return d.findElement(by);
}
});
}
//打开浏览器
public void Start ( String url ) {
webDriver.get( url );
}
//结束
public void Stop () {
webDriver.quit();
}
//获取当前时间
public static String getSysTime(){
SimpleDateFormat filename = new SimpleDateFormat("yyyyMMdd_HHmmss");
return filename.format(new Date());
}
// 睡眠
public void Sleep(int millis) {
try {
Thread.sleep(millis);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static WebDriver getWebDriver() {
return webDriver;
}
public static void setWebDriver(WebDriver webDriver) {
SeleniumUtil.webDriver = webDriver;
}
public static WebElement getWebElement() {
return webElement;
}
public static void setWebElement(WebElement webElement) {
SeleniumUtil.webElement = webElement;
}
public static By getByelement() {
return byelement;
}
public static void setByelement(By byelement) {
SeleniumUtil.byelement = byelement;
}
}
import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.TakesScreenshot;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.By;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;
public class SeleniumUtil {
private static WebDriver webDriver;
private static WebElement webElement;
private static Robot robot;
private static By byelement;
//javascript
public void Script ( String script , WebElement element ) {
JavascriptExecutor js=(JavascriptExecutor)webDriver;
if ( element==null ) {
js.executeScript(script);
} else {
js.executeScript(script, element);
}
}
//javascript 返回数据
public String ScriptString ( String script ) {
JavascriptExecutor js=(JavascriptExecutor)webDriver;
String s=(String) js.executeScript(script);
return s;
}
/**
* 初始化
* @param select
* 1:Firefox
* 2:IE
* 3:Chrome
* 4:后台执行
* @param browserpath
* 选择本地浏览路径
*/
public void Init ( int switchbrowser , String browserpath ) {
switch ( switchbrowser ) {
case 1:
System.setProperty ( "webdriver.firefox.bin" , browserpath );
webDriver = new FirefoxDriver();
webDriver.manage().window().maximize();
break;
case 2:
System.setProperty("webdriver.ie.driver", browserpath);
webDriver = new InternetExplorerDriver();
webDriver.manage().window().maximize();
break;
case 3:
System.setProperty("webdriver.chrome.driver", browserpath);
webDriver = new ChromeDriver();
webDriver.manage().window().maximize();
break;
case 4:
webDriver = new HtmlUnitDriver();
break;
}
}
//复制
protected void CopyKeys() {
try {
robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_C);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_C);
} catch (AWTException e) {
e.printStackTrace();
}
}
//粘贴
protected void PasteKeys() {
try {
robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_V);
} catch (AWTException e) {
e.printStackTrace();
}
}
/**
* 拖拽
* @param by 要多拽的元素
* @param target 目的地
*/
protected void DragAndDrop ( By by , By target ) {
(new Actions(webDriver)).dragAndDrop(webDriver.findElement(by), webDriver.findElement(target)).perform();
}
//传入值
protected void SendKeys(By by, String value){
webDriver.findElement(by).sendKeys(value);
}
/**
* 截图
* @param outpath 导出截图后的路径 文件名是以当前时间
*/
public void GetScreen ( String outpath ) {
File screenShotFile = ((TakesScreenshot)webDriver).getScreenshotAs(OutputType.FILE);
try {
FileUtils.copyFile(screenShotFile, new File ( outpath + "/" + getSysTime() + ".jpg" ) );
} catch (IOException e) {
e.printStackTrace();
}
}
/**获取元素
* @param by
* @param second 查找需要时间
*/
public void Wait( final By by , int second ) {
WebDriverWait wait = new WebDriverWait(webDriver,second);
wait.until(new ExpectedCondition<WebElement>(){
public WebElement apply(WebDriver d) {
return d.findElement(by);
}
});
}
//打开浏览器
public void Start ( String url ) {
webDriver.get( url );
}
//结束
public void Stop () {
webDriver.quit();
}
//获取当前时间
public static String getSysTime(){
SimpleDateFormat filename = new SimpleDateFormat("yyyyMMdd_HHmmss");
return filename.format(new Date());
}
// 睡眠
public void Sleep(int millis) {
try {
Thread.sleep(millis);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static WebDriver getWebDriver() {
return webDriver;
}
public static void setWebDriver(WebDriver webDriver) {
SeleniumUtil.webDriver = webDriver;
}
public static WebElement getWebElement() {
return webElement;
}
public static void setWebElement(WebElement webElement) {
SeleniumUtil.webElement = webElement;
}
public static By getByelement() {
return byelement;
}
public static void setByelement(By byelement) {
SeleniumUtil.byelement = byelement;
}
}
相关文章推荐
- 【软件测试】Java中Selenium Webdriver的使用
- Java报表软件超级链接参数继承
- selenium测试(Java)-- 显式等待(九)
- Java报表软件超级链接页面设置
- K-java软件测试指南
- theboboy原创 随机生成器 生成伪数据 用来做测试 Java版本
- selenium测试(Java)--学习总结
- 测试人员如何搭建Selenium-Grid2环境(参考Java)
- 【原创】软件测试中的“杀虫剂怪事”
- 软件包 java.util
- selenium测试(Java)--元素操作(五)
- 自动化测试【Maven+Eclipse+Selenium+Java环境搭建和测试】
- 如何搭建Selenium-Grid2环境(Java)(自动化测试技术)
- selenium+java+testNG+pageObject深入理解自动化测试框架
- [原创]证券行情软件测试培训
- unit测试出现异常:Exception in thread "main" java.lang.NoSuchMethodError: org.junit.platform.commons.util
- 网易笔试题(java 、 c++ 、软件测试等)
- [软件测试] - No.6 使用μJava进行变异测试
- selenium:6.一个超级简易HTML测试报告
- 南京java——软件测试培训网站