Selenium 2.0 WebDriver 自動化測試 使用教程 例項教程 API快速參考
阿新 • • 發佈:2019-02-15
//System.setProperty("webdriver.firefox.bin", "E:/firefox/firefox.exe");
//FirefoxDriver dr = new FirefoxDriver();
============ Selenium 2.0 WebDriver API Demo ==========
package example; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.support.ui.ExpectedCondition; import org.openqa.selenium.support.ui.WebDriverWait; import util.Log; import util.SeleniumUtil; public class TestAllInOne { public static final String BASE_URL = "http://www.baidu.com"; public static void main(String[] args) throws Exception { System.setProperty("webdriver.chrome.driver", "E:/0down/selenium/chromedriver.exe"); //開啟firefox ChromeDriver dr = new ChromeDriver(); //訪問頁面 dr.get(BASE_URL); // dr.navigate().to(BASE_URL);//與dr.get()效果相同 // dr.navigate().forward();//讓瀏覽器前進一步 // dr.navigate().back();//讓瀏覽器後退一步 Log.Info(dr.getPageSource()); //等待頁面載入完畢,直到條件滿足 (new WebDriverWait(dr, 10)).until(new ExpectedCondition<Boolean>() { public Boolean apply(WebDriver dr) { Log.Info("web driver wait..."); int index = dr.getPageSource().indexOf("京ICP證030173號"); if(index != -1){ Log.Info("web driver wait, true..."); return true; }else{ Log.Info("web driver wait, false..."); return false; } } }); //等待頁面載入完畢,直到條件滿足,一個while迴圈,也挺簡單的吧 /* while(true){ Log.Info("wait for..."); int index = dr.getPageSource().indexOf("京ICP證030173號"); if(index != -1){ Log.Info("wait for, true..."); break; } Thread.sleep(1 * 1000); }*/ //等待元素載入完成 // (new WebDriverWait(dr, 10)).until( // ExpectedConditions.presenceOfElementLocated(By.id("kw")) // ); //等待元素載入完成,並可點選 // WebDriverWait wait = new WebDriverWait(dr, 10); // wait.until(ExpectedConditions.elementToBeClickable(By.id("su"))); //全域性性的影響,只要WebDriver不消失,每隔10秒檢查元素是否載入完成,直到載入完成。 // dr.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); // dr.get("http://somedomain/url_that_delays_loading"); // dr.findElement(By.id("myDynamicElement")); // WebElement we = dr.findElement(By.id("kw")); // we.sendKeys("selenium"); // we.click(); // dr.findElement(By.id("元素id"));//最常用 // dr.findElement(By.className("class名稱"));//比較常用 // dr.findElement(By.tagName("tag名稱"));//比較常用 // dr.findElement(By.cssSelector("css選擇器"));//比較常用 // dr.findElement(By.name("元素的name屬性"));//比較常用 // dr.findElement(By.linkText("超連結的內容"));//不常用 // dr.findElement(By.partialLinkText("超連結的部分內容"));//不常用 // dr.findElement(By.xpath("xpath表示式"));//不常用 //1:用java從文字中讀取jQuery,並用WebDriver載入jQuery SeleniumUtil.LoadAndExecuteJQuery(dr); //2:用WebDriver執行你寫的jQuery程式碼,可以返回單個元素,也可以返回元素陣列,或無返回值 //執行你的jQuery程式碼,既然能執行自已的jQuery程式碼,就能做任何事情了 dr.executeScript("$('#kw').val('selenium'); $('#kw').val($('#kw').val() + ' java');"); //也可以用WebDriver API進行頁面元素的操作 WebElement el = dr.findElement(By.id("kw")); el.sendKeys("selenium java"); dr.findElement(By.id("su")).click(); //WebDriver專用的select下接框處理類 /* List<WebElement> elList = dr.findElements(By.tagName("select")); if(elList != null && elList.size() > 0){ Select select = new Select(elList.get(0)); select.deselectAll(); select.selectByVisibleText("Edam"); select.selectByIndex(1); select.selectByValue("10010"); }*/ //window和frame的切換 /* dr.switchTo().window("xxName"); dr.switchTo().frame("xxName"); */ //瀏覽器自帶的alert彈出框的處理 /* Alert alert = dr.switchTo().alert(); if(alert != null){ alert.accept(); alert.dismiss(); alert.sendKeys("collonn"); }*/ /* //用jQuery查詢一個元素 WebElement wea = (WebElement)dr.executeScript("return $('#kw').get(0);"); //用jQuery查詢一組元素 List<WebElement> weaList = (List<WebElement>)dr.executeScript("return $('.stu_info').get();"); //返回Boolean Boolean flagB = (Boolean)dr.executeScript("return true;"); //返回Double Double flagD = (Double)dr.executeScript("return 12.12;"); //返回Long Long flagL = (Long)dr.executeScript("return 123;"); //返回String String flagS = (String)dr.executeScript("return 'collonn';"); //返回String陣列 List<String> flagSs = (List<String>)dr.executeScript("var ary = ['a', 'b', 'c']; return ary;"); */ //儲存網面截圖 SeleniumUtil.TakeScreenshot(dr, null); //關閉瀏覽器 dr.quit(); } }