资源链接: 官网:http://www.seleniumhq.org/download/maven.jsp webDriver中文社区:http://www.webdriver.org/nav1/ 是什么?: Selenium是一个用于Web应用程序测试的工具; 后台代码模拟启动浏览器,访问页面等一些列操作。 应用场景?: 自动化测试、爬虫等。 如何构建?: 参考官网构建说明。
document.readyState几种状态及示例 http://www.runoob.com/jsref/prop-doc-readystate.html - uninitialized - 还未开始载入 - loading - 载入中 - interactive - 已加载,文档与用户可以开始交互 - complete - 载入完成
demo:
package com.webdriver; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.interactions.Actions; /** * webdriverDemo * @author yisea * */ public class WebDriverTest { /** * 1.selenium 2.xx. 版本需要使用低版本的firefox浏览器,比如selenium2.45.0 对firefox 36可用(其他版本可自行尝试) * 2.selenium 3.0.0 需要额外驱动webdriver.firefox.marionette=path/geckodriver.exe * 所有版本必修保证浏览器启动exe路径能被加载(默认安装自动加载,否则需手动配置): * -Dwebdriver.firefox.bin="D:/Program Files/Mozilla Firefox 36/firefox.exe" * -Dwebdriver.firefox.marionette="D:/Program Files/Mozilla Firefox 36/geckodriver.exe" */ private static WebDriver driver = null; public WebDriver getFireFoxDriver(){ if(null == driver){ driver = new FirefoxDriver(); } System.out.println("Inite fireFoxDriver over!-------"); return driver; } /** * 测试firefoxDriver */ public void testFireFoxDriver(){ WebDriver driver = getFireFoxDriver(); driver.get("https://www.baidu.com/"); /** * 返回页面加载状态 * document.readyState几种状态及示例 * - uninitialized - 还未开始载入 * - loading - 载入中 * - interactive - 已加载,文档与用户可以开始交互 * - complete - 载入完成 * */ String get_ready_state_js = "return document.readyState;"; JavascriptExecutor jsExecutor = (JavascriptExecutor) driver; String onload = jsExecutor.executeScript(get_ready_state_js).toString(); if("complete".equals(onload)){ // 执行js id=kw ; id=su String baidu_input_js = "$('#kw').attr('value','北京')"; // 执行给百度输入框赋值js jsExecutor.executeScript(baidu_input_js); // 模拟点击-百度一下 WebElement clickElement = driver.findElement(By.id("su")); Actions actions = new Actions(driver); actions.click(clickElement).build().perform(); }else{ System.out.println("fail to load page!----------"); } try { // 让浏览器飞一会... System.out.println("Let browser fly ..."); for(int i = 1; i < 11; i++){ System.out.println(i + "s..."); Thread.sleep(1000L); } } catch (InterruptedException e) { e.printStackTrace(); } // 关闭webDriver driver.close(); System.out.println("fireFoxDriver closed!------"); } public static void main(String args[]){ WebDriverTest test = new WebDriverTest(); test.testFireFoxDriver(); } }