WebDriver如何加载本地的jQuery库

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriverException;
import org.openqa.selenium.firefox.FirefoxDriver;


/**
 * 本类主要的是实现可以加载本地的Jquery库
 */
public class LoadJQueryLib {
private static LoadJQueryLib jquery = null;
//private String strJqueryMin = "";


private LoadJQueryLib(){

}

public static LoadJQueryLib getInstance() throws IOException {
if (jquery == null) {
jquery = new LoadJQueryLib();
}
return jquery;
}

private String read4jQueryFile() {
String strJqueryMin = "";
File file = null;
InputStream inStream = null;
ByteArrayOutputStream swapStream = null;
try {
file = new File("c:/jquery-1.11.1.js");
inStream = new FileInputStream(file);
swapStream = new ByteArrayOutputStream();
byte[] buff = new byte[1024];
int rc = 0;
while ((rc = inStream.read(buff, 0, 10)) > 0) {
swapStream.write(buff, 0, rc);
}
swapStream.flush();
strJqueryMin = new String(swapStream.toByteArray(), "UTF-8");
inStream.close();
swapStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return strJqueryMin;
}


private void initJQuery(JavascriptExecutor driver) {
if (!jQueryLoaded(driver)) {
System.out.println("jQuery类库没有加载过,开始加载...");
String strJqueryMin = this.read4jQueryFile();
driver.executeScript(strJqueryMin);
//driver.executeScript("window.jQuery=jQuery.noConflict();");
System.out.println("jQuery类库成功加载完毕...");
}else{
System.out.println("jQuery类库已经被加载过...");
}
}


/**
* 判断当前页面是否加载了JQuery

* @param driver
* @return
*/
public Boolean jQueryLoaded(JavascriptExecutor driver) {
Boolean loaded=false;
try {
loaded = (Boolean) driver
.executeScript("if(typeof jQuery==\"undefined\"){return false;}else{return true;}");
} catch (WebDriverException e) {
loaded = false;
}
return loaded;
}


/**
* 执行JS脚本

* @param driver
* @param script
* @param args
* @return
*/
public Object runJs(WebDriver driver, String jquery_script, Object... args) {
JavascriptExecutor js = (JavascriptExecutor) driver;
initJQuery(js);
return js.executeScript(jquery_script, args);
}


public static void main(String[] args) {
try {
WebDriver driver = new FirefoxDriver();
driver.get("C:\\Documents and Settings\\wlh\\桌面\\test.htm");
LoadJQueryLib.getInstance().runJs(driver, "jQuery('#kw').val('软件测试');");
LoadJQueryLib.getInstance().runJs(driver, "jQuery('#su').click();");
Thread.sleep(5000);
driver.quit();
} catch (Exception e) {
e.printStackTrace();
}
}


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值