SELENIUM2 使用JavascriptExecutor在页面Javascipt执行

时间:2021-07-24 14:56:44

目的:

1. 执行一段JS,来改变HTML
2. 一些非标准控件无法用selenium2的API时,可以执行JS的办法来取代

主要操作:
JavascriptExecutor j = (JavascriptExecutor)driver;
j.executeScript("alert('hellow rold!')");

说明:
1. executeScript这个方法的参数为字符串,为一段JS代码
2. 注意,JS代码需要自已根本项目的需求来编写!

executeScript(java.lang.String arg0, java.lang.Object... arg1);

第二个参数是一个可变参数,

1. 第二个参数的写法:
JDK1.6~1.7 
不使用第二个参数
executor.executeScript("alert('aaa');");

使用第二个参数:
executor.executeScript("alert('aaa');","argument1","argument2");
executor.executeScript("alert('aaa');", new Object[]{"argument1","argument2"});

JDK1.8
不使用第二个参数
executor.executeScript("alert('aaa');", new Object[]{});

使用第二个参数:
executor.executeScript("alert('aaa');", new Object[]{"argument1","argument2"});

2. 第二个参数的作用。
其实是给第一个参数指定javascript代码传入值,这些值可以通过在javascript里使用arguments[0],arguments[1]来获取。
executor.executeScript("alert(arguments[0]);", new Object[]{"aa111"});