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 | } |