在web自动化操作页面的时候,有些特殊的情况selenium的api无法完成,需要通过执行一段js来实现的DOM操作;
//执行方式
JavascriptExecutor jsExecutor = (JavascriptExecutor) driver;
jsExecutor.executeScript(“js代码”);
例如:
1.时间插件限制手动输入的情况下,sendkeys无法写入数据,需要执行js来移除readonly属性!
2.有些页面元素需要拉动滚动条才能获取到(因为拉取滚动条才加载),而selenium和webdriver都没有提供操作滚动条的方法,只能借助js来完成!
//执行方式
JavascriptExecutor jsExecutor = (JavascriptExecutor) driver;
String js = “document.body.scrollTop=200”;
jsExecutor.executeScript(js);//执行js
实现滚动条匀速向下滚动代码如下:
public static void main(String[] args) {
// TODO Auto-generated method stub
System.setProperty("webdriver.chrome.driver", ".\\target\\chromedriver.exe");
// 声明ChromeOptions类的对象option
ChromeDriver driver = new ChromeDriver(); //初始化谷歌浏览器实例,并打开浏览器
try {
driver.get("http://www.baidu.com"); //打开一个网址
driver.manage().window().maximize(); //最大化窗口
Thread.sleep(1000);
System.out.println("当前打开页面的标题是:"+driver.getTitle());//打印标题
System.out.println("当前页面的网址是:"+driver.getCurrentUrl());//打印当前网址
Thread.sleep(3000); //等待时间
JavascriptExecutor js = (JavascriptExecutor) driver; //声明一个JS执行器
String title = (String) js.executeScript("return document.title");//调用执行器的executeScript方法执行js脚本
System.out.println(title);//打印的是当前浏览器的title值
Thread.sleep(2000);
}catch (Exception e) {
e.printStackTrace();
}finally {
driver.quit();
}
}
}
![5c3c039424cb76505e34a90919c99659.gif](https://img-blog.csdnimg.cn/img_convert/5c3c039424cb76505e34a90919c99659.gif)
●selenium操作详解之鼠标键盘事件
●名师讲堂专栏
●软件测试“师徒制”,开启培训新纪元
●织雀教育响应国家政策,解决退伍军人就业难题