Selenium2.0功能测试之WebDriver执行JS方法

发表于:2013-10-23 11:48

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:CoderInfo    来源:CoderInfo的专栏

  如果你是一个JS高手的话可以在WebDriver 中直接执行JS代码来提升效率,一般用到执行js的场景主要分一下两种:
  在页面加载的时候执行JS
  在某个已经定位了的元素上执行js
Demos:
package org.coderinfo.demo;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class ExecuteJSOnPageLoading {
private static final String URL = "file:///C:/user/Desktop/Selenium/jsdemo.html";
public static void main(String[] args) {
WebDriver driver = new ChromeDriver(); // create a chrome driver
driver.manage().window().maximize(); // max size the chrome window
driver.get(URL); // open URL with the chrome browser
try {
Thread.sleep(2000); // wait for web loading
} catch (InterruptedException e) {
e.printStackTrace();
}
// Execute JavaScript on page loading
((JavascriptExecutor)driver).executeScript("alert(\"Hello,World!\")");
ele.click();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
driver.quit(); // close webdriver
}
}
package org.coderinfo.demo;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class ExecuteJSOnWebElement {
private static final String URL = "file:///C:/user/Desktop/Selenium/jsdemo.html";
public static void main(String[] args) {
WebDriver driver = new ChromeDriver(); // create a chrome driver
driver.manage().window().maximize(); // max size the chrome window
driver.get(URL); // open URL with the chrome browser
try {
Thread.sleep(2000); // wait for web loading
} catch (InterruptedException e) {
e.printStackTrace();
}
/*
* Execute JavaScript on web element
*/
WebElement ele = driver.findElement(By.id("js")); // locate web element
((JavascriptExecutor) driver)
.executeScript(
"arguments[0].onclick=function(){alert('js has been execute!');}",
ele); // add js on the web element
ele.click();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
driver.quit(); // close webdriver
}
}
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号