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 {
private
static WebDriver webDriver;
private
static WebElement webElement;
private
static Robot robot;
private
static By byelement;
public
void Script (
String script , WebElement element ) {
JavascriptExecutor js=(JavascriptExecutor)webDriver;
if ( element==
null ) {
js.executeScript(script);
}
else {
js.executeScript(script, element);
}
}
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;
}
}