标签:http java 使用 strong 文件 html
在用selenium webdriver 编写web页面的自动化测试代码时,可能需要执行一些javascript代码,selenium本身就支持执行js,我们在代码中import org.openqa.selenium.JavascriptExecutor;
就可以使用executeScript
、executeAsyncScript
这两个方法了,其中executeScript
是同步方法,用它执行js代码会阻塞主线程执行,直到js代码执行完毕;executeAsyncScript
方法是异步方法,它不会阻塞主线程执行。
executeScript方法如果有返回值,有以下几种情况:
executeScript例子:
01 |
import java.util.concurrent.TimeUnit; |
02 |
03 |
import org.openqa.selenium.By; |
04 |
import org.openqa.selenium.JavascriptExecutor; |
05 |
import org.openqa.selenium.WebDriver; |
06 |
07 |
/** |
08 |
* @author youthflies yeetrack.com |
09 |
* Mytest.java 2013-5-19 |
10 |
* 测试所用临时文件 |
11 |
*/ |
12 |
public class Mytest |
13 |
{ |
14 |
public static void main(String[] args) throws InterruptedException |
15 |
{ |
16 |
//可能需要设置firefox的路径 |
17 |
WebDriver driver = new FirefoxDriver(); |
18 |
try |
19 |
{ |
20 |
driver.get( "http://www.baidu.com" ); |
21 |
//利用webdriver键入搜索关键字 |
22 |
//driver.findElement(By.id("kw")).sendKeys("yeetrack"); |
23 |
//利用js代码键入搜索关键字 |
24 |
((JavascriptExecutor)driver).executeScript( "document.getElementById(\"kw\").value=\"yeetrack\"" ); |
25 |
//利用js代码取出关键字 |
26 |
String keyword = (String) ((JavascriptExecutor)driver).executeScript( "var input = document.getElementById(\"kw\").value;return input" ); |
27 |
System.out.println(keyword); |
28 |
driver.findElement(By.id( "su" )).click(); |
29 |
TimeUnit.SECONDS.sleep( 5 ); |
30 |
} |
31 |
catch (Exception e) |
32 |
{ |
33 |
e.printStackTrace(); |
34 |
} |
35 |
finally |
36 |
{ |
37 |
driver.quit(); |
38 |
} |
39 |
} |
40 |
41 |
} |
executeAsyncScript
是异步地执行js,可以用来发送ajax请求,详细参见官方文档:http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/JavascriptExecutor.htmlhttp://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/remote/RemoteWebDriver.html
转:selenium webdriver 执行javascript代码,布布扣,bubuko.com
转:selenium webdriver 执行javascript代码
标签:http java 使用 strong 文件 html
原文地址:http://www.cnblogs.com/lci05/p/3831496.html