Selenium 1.0包括:selenium IDE、selenium Grid、selenium RC三部分。css
Selenium IDE 是嵌入到Firefox瀏覽器中的一個插件,實現簡單的瀏覽器操做的錄製與回放功能
IDE錄製的腳本能夠能夠轉換成多種語言,從而幫助咱們快速的開發腳本。chrome
Eclipse Help ->Install New Software ,Add"http://beust.com/eclipse"apache
定位方法
driver.findElement(By.id(「id的值」));
driver.findElement(By.name(「name的值」));
driver.findElement(By.linkText(「連接的所有文字」));
driver.findElement(By.partialLinkText(「連接的部分文字」));
driver.findElement(By.cssSelector(「css表達式」));
driver.findElement(By.xpath(「xpath表達式」));
driver.findElement(By.className(「class屬性」));
driver.findElement(By.tagName(「標籤名稱」));windows
click();
sendkeys(String value);
clear();
getText();
getAttribute();瀏覽器
driver.get(String url) //瀏覽器跳轉
driver.manage().window().maximize(); // 瀏覽器最大化 driver.navigate().to("http://www.baidu.com"); //瀏覽器跳轉
driver.navigate().refresh(); // 刷新瀏覽器
driver.navigate().back(); // 瀏覽器後退
driver.navigate().forward(); // 瀏覽器前進
driver.quit(); // 瀏覽器退出 app
操做彈出框框架
Alert , Confirm,Prompt彈出框
driver.switchTo().alert().accept(); //點擊肯定
driver.switchTo().alert().dismiss(); //點擊取消
driver.switchTo().alert().sendKeys();eclipse
操做windows彈出框
藉助autoIt工具
滾動到頂
((JavascriptExecutor)driver).executeScript("document.documentElement.scrollTop=0");
滾動到底
((JavascriptExecutor)driver).executeScript("document.documentElement.scrollTop=10000");post
Actions action = new Actions(driver);
action.click(WebElement); //模擬鼠標點擊
action.contextClick(WebElement); //模擬右鍵點擊
action.doubleClick(WebElement); //模擬鼠標雙擊
action.moveToElement(WebElement); //鼠標移動到元素
actions.dragAndDrop(elementsource, elementtarget).perform();
action.sendKeys(); //模擬鍵盤輸入
action.sendKeys(Keys.ENTER).perform(); //模擬鍵盤迴車
action.sendKeys(Keys.CONTROL+"a").perform(); //使用ctrl+a全選
強制等待
Thread.sleep();
隱式等待
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
總共等待10秒, 若是10秒後,元素還不存在,就會拋出異常 org.openqa.selenium.NoSuchElementException
顯式等待
new WebDriverWait(chrome, 15).until(
ExpectedConditions.presenceOfElementLocated(By.cssSelector("css locator"))
);
dr.switchTo().frame("frameA"); // 進入 id 叫frameA 的 iframe
dr.switchTo().defaultContent(); // 回到主窗口
public void switchToWindow(String title) {
try {
String currentHandle = driver.getWindowHandle(); //返回當前的瀏覽器的窗口句柄
Set<String> handles = driver.getWindowHandles(); //返回當前的瀏覽器的全部窗口句柄
for (String handle : handles){
if(handle.equals(currentHandle)){
continue;
}else{
driver.switchTo().window(handle);
if (driver.getTitle().contains(title)){ break; }
else{ continue; }
}
}
} catch (NoSuchWindowException e) {
System.out.println("沒有找到窗口!");
}
}
NoSuchElementException:檢查頁面元素的定位表達式是否正確,或嘗試其餘定位方式;查看頁面是否加載延遲,設置等待時間;
NoSuchFrameException :檢查元素是否frame裏,是否已切換到元素的frame下,或切換回default content
ElementNotVisibleException:檢查元素是否存在不可見屬性的元素,可藉助Javascript實現元素操做;檢查是否操做速度過快,頁面沒加載出來