WebDriver中调用JQuery(通过读取本地JQuery来实现)

本文介绍了一个用于Selenium WebDriver的工具类,该类允许在测试过程中集成和使用JQuery库,通过将JQuery脚本注入浏览器来实现网页元素的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

WebDriver中调用JQuery的一个工具类,jquery-1.7.2.min.js这个js文件跟程序源文件放在同一个目录下,好处就是可以将js与class一并打入jar包,方便发布。
 
package zhenghz.testautomation.webdriver;
 
import java.io.ByteArrayOutputStream;
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.ie.InternetExplorerDriver;
 
 
public class JQuery {
private static JQuery jquery=null;
private String strJqueryMin = "";
private JQuery() throws IOException {
InputStream inStream = this.getClass().getResourceAsStream("/zhenghz/testautomation/webdriver/jquery-1.7.2.min.js");
ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
byte[] buff = new byte[100];
int rc = 0;
while ((rc = inStream.read(buff, 0, 100)) > 0) {
swapStream.write(buff, 0, rc);
}
strJqueryMin = new String(swapStream.toByteArray(),"UTF-8");
}
private void initJQuery(JavascriptExecutor driver) { 
    if (!jQueryLoaded(driver)){ 
     driver.executeScript(strJqueryMin);
     driver.executeScript("window.jQuery=jQuery.noConflict();");
    }
/**
 * 判断当前页面是否加载了JQuery
 * @param driver
 * @return
 */
public Boolean jQueryLoaded(JavascriptExecutor driver) { 
    Boolean loaded; 
    try { 
        loaded = (Boolean) driver.executeScript("if(typeof jQuery==\"undefined\"){return false;}else{return true;}"); 
    } catch (WebDriverException e) { 
        loaded = false; 
    } 
    return loaded; 
public static JQuery getInstance() throws IOException{
if (jquery == null) {
jquery = new JQuery();
}
return jquery;
}
/**
 * 执行JS脚本
 * @param driver
 * @param script
 * @param args
 * @return
 */
public Object runJs(WebDriver driver,String script, Object... args){
JavascriptExecutor js = (JavascriptExecutor) driver;
initJQuery(js);
return js.executeScript(script, args);
}
public static void main(String[] args) {
try {
WebDriver driver = new InternetExplorerDriver();
driver.get("http://www.baidu.com");
JQuery.getInstance().runJs(driver,"jQuery('#kw').val('软件测试');");
JQuery.getInstance().runJs(driver,"jQuery('#su').click();");
Thread.sleep(5000);
driver.quit();
} catch (Exception e) {
e.printStackTrace();
}
}
 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值