01 |
package com.example.tests;
|
02 |
|
03 |
import static org.junit.Assert.*;
|
04 |
import java.util.*;
|
05 |
import org.junit.*;
|
06 |
import org.openqa.selenium.*;
|
07 |
import org.openqa.selenium.ie.InternetExplorerDriver;
|
08 |
|
09 |
public class Selenium2{
|
10 |
WebDriver driver = new InternetExplorerDriver();
|
11 |
JavascriptExecutor jse = (JavascriptExecutor) driver;
|
12 |
|
13 |
@Test |
14 |
public void jQueryTest() {
|
15 |
driver.get( "http://www.baidu.com/" );
|
16 |
injectjQueryIfNeeded();
|
17 |
List<WebElement> elements = (List<WebElement>) jse
|
18 |
.executeScript( "return jQuery.find('#nv a')" );
|
19 |
assertEquals( 7 , elements.size()); // 验证超链接的数量
|
20 |
for ( int i = 0 ; i < elements.size(); i++) {
|
21 |
System.out.print(elements.get(i).getText() + "、" );
|
22 |
}
|
23 |
driver.close();
|
24 |
}
|
25 |
private void injectjQueryIfNeeded() {
|
26 |
if (!jQueryLoaded())
|
27 |
injectjQuery();
|
28 |
}
|
29 |
|
30 |
// 判断是已加载jQuery
|
31 |
public Boolean jQueryLoaded() {
|
32 |
Boolean loaded;
|
33 |
try {
|
34 |
loaded = (Boolean) jse.executeScript( "return " + "jQuery()!=null" );
|
35 |
} catch (WebDriverException e) {
|
36 |
loaded = false ;
|
37 |
}
|
38 |
return loaded;
|
39 |
}
|
40 |
|
41 |
// 通过注入jQuery
|
42 |
public void injectjQuery() {
|
43 |
jse.executeScript( " var headID = " |
44 |
+ "document.getElementsByTagName(\"head\")[0];" |
45 |
+ "var newScript = document.createElement('script');" |
46 |
+ "newScript.type = 'text/javascript';" + "newScript.src = " |
47 |
+ "'http://ajax.googleapis.com/ajax/" |
48 |
+ "libs/jquery/1.7.2/jquery.min.js';" |
49 |
+ "headID.appendChild(newScript);" );
|
50 |
}
|
51 | } |