Selenium分爲兩個版本:Selenium RC和Selenium Webdriver。如今用Selenium Webdriver比較多。
Selenium是一套工具,而不單單是一個操縱瀏覽器的庫,它包括Selenium IDE,Selenium Grid等。
Selenium對Firefox瀏覽器支持得最好,對Chrome支持並不完善。Chrome的設計原則就是安全,讓用戶安全,由此帶來的誤傷比較多,對開發人員就不太友好,好比Chrome會自動檢測跨域訪問並禁止之,Firefox就不會。Firefox的設計原則就是開放,對開發人員十分友好。
SeleniumIDE是Firefox的一款插件,這個插件能夠錄製用戶操做,保存下來的是一個指令序列,這個指令序列能夠轉換成Java、Python、C#等語言的測試代碼。當不知道某個操做怎麼寫時,能夠先用SeleniumIDE操做一下並導出代碼,略微改改就能直接用了。css
//WebDriver是一個接口,每一種瀏覽器都有一個實現類(多態) WebDriver webDriver = new FirefoxDriver(); webDriver.manage().window().maximize(); //與瀏覽器同步很是重要,必須等待瀏覽器加載完畢 webDriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); //下面這句等價於webDriver.navigate().to("www.baidu.com"); webDriver.get("http://www.baidu.com"); //在輸入框中填寫要搜索的內容 WebElement kw = webDriver.findElement(By.id("kw")); kw.sendKeys("java用selenium庫控制chrome"); //點擊搜索按鈕 WebElement su = webDriver.findElement(By.id("su")); su.click(); webDriver.findElements(By.className("result")).forEach(x -> { System.out.println(x.getText()); }); //尋找包含weiyinfu的搜索條目 webDriver.findElement(By.partialLinkText("weiyinfu")).click(); //webDriver.close(); System.out.println("Hello World!");
兩種方式,一個原理。原理就是模擬快捷鍵。html
/** * 原理就是模擬瀏覽器的快捷鍵CTRL+T, * 由此可知,經過快捷鍵的方式能夠實現的功能, * 例如:前進、後退、書籤、收藏等操做均可以實現 */ public class 新標籤頁打開連接 { static void method1(WebDriver webDriver) { Actions actionOpenLinkInNewTab = new Actions(webDriver); actionOpenLinkInNewTab.keyDown(Keys.CONTROL).sendKeys("t").keyUp(Keys.CONTROL).perform(); webDriver.get("http://www.baidu.com"); actionOpenLinkInNewTab.perform(); webDriver.switchTo().window(webDriver.getWindowHandles().toArray()[1].toString()); webDriver.get("http://www.baidu.com"); } static void method2(WebDriver webDriver) { webDriver.get("http://www.baidu.com"); webDriver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t"); webDriver.switchTo().window(webDriver.getWindowHandles().toArray()[1].toString()); webDriver.get("http://www.baidu.com"); } public static void main(String[] args) { //設置好瀏覽器驅動器的位置 System.setProperty("webdriver.gecko.driver", "C:\\Users\\weidiao\\Desktop\\geckodriver-v0.16.1-win64\\geckodriver.exe"); WebDriver webDriver = new FirefoxDriver(); method1(webDriver); // method2(webDriver); } }
WebDriver webDriver = new FirefoxDriver(); //設置默認等待時間,若是沒有發現要找的元素就會默認等待30秒鐘 webDriver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); webDriver.get("http://www.cnblogs.com/weidiao"); webDriver.findElement(By.id("homepage1_HomePageDays_DaysList_ctl01_DayList_TitleUrl_0")).click(); webDriver.findElement(By.linkText("登陸")).click(); webDriver.findElement(By.id("input1")).clear(); webDriver.findElement(By.id("input1")).sendKeys("weiyinfu"); webDriver.findElement(By.id("input2")).clear(); webDriver.findElement(By.id("input2")).sendKeys("xxxxxxx"); webDriver.findElement(By.id("remember_me")).click(); webDriver.findElement(By.id("signin")).click(); webDriver.findElement(By.id("tbCommentBody")).sendKeys("如今時間" + new Date()); webDriver.findElement(By.id("btn_comment_submit")).click();
selenium能夠驅動好多種瀏覽器
http://www.seleniumhq.org/download/java
chromedriver下載地址
https://chromedriver.storage.googleapis.com/index.html?path=2.9/web
易百教程
http://www.yiibai.com/selenium/selenium_ide.html#article-startchrome
webdriver中文社區
http://www.webdriver.org/article-26-1.htmlapi
一個比較完整的selenium測試教程
http://www.51testing.com/zhuanti/selenium.html跨域
selenium入門
http://www.cnblogs.com/weidiao/p/5930468.html
selenium進階
http://www.cnblogs.com/weidiao/p/5930739.html
HTMLUnit:無頭瀏覽器
http://www.cnblogs.com/weidiao/p/5931339.html瀏覽器