public void testAlert(){WebElement element = driver.findElement(By.className("alert"));element.click();Alert alert = driver.switchTo().alert(); String text = alert.getText(); alert.accept();//alert.dismiss();System.out.println(text);}
?使用Actions類
先要new一個Actions的類對象
最后的perform()一定要加上,否則執行不成功
public void testAlertByActions(){WebElement element = driver.findElement(By.className("alert"));Actions action = new Actions(driver);action.click(element).perform();Alert alert = driver.switchTo().alert();String text = alert.getText();alert.accept();//alert.dismiss();System.out.println(text);}
?2、Action類
先要new一個Actions的類對象
最后的perform()一定要加上,否則執行不成功
public void testActions(){WebElement element = driver.findElement(By.className("over"));Actions action = new Actions(driver);action.moveToElement(element).perform();String text = driver.findElement(By.id("over")).getText();System.out.println(text); }
?3、調用JS?
一般用來執行一段JS,來改變HTML
一些非標準控件無法用selenium2的API時,可以執行JS的辦法來取代
executeScript這個方法的參數為字符串,為一段JS代碼
public void testJS(){JavascriptExecutor executor = (JavascriptExecutor)driver;executor.executeScript("alert('helloworld')");}
?4、Wait機制及實現
?在規定的時間內只要符合條件即返回,下面的代碼中是只要isDisplayed即返回
public void testWait(){WebElement waitButton = driver.findElement(By.id("wait"));waitButton.click();boolean flag = new WebDriverWait(driver, 10).until(new ExpectedCondition<Boolean>() {public Boolean apply(WebDriver driver) {return driver.findElement(By.className("red")).isDisplayed();} });if(flag){String text = driver.findElement(By.className("red")).getText();System.out.println(text); }}
public void testIFrame(){driver.findElement(By.id("user")).sendKeys("test");driver.switchTo().frame("aa");driver.findElement(By.id("user")).sendKeys("iframe test");driver.switchTo().defaultContent();//返回頂層framedriver.findElement(By.id("user")).sendKeys("---new test");}
?6、多窗口切換
gettWindowHandles:取得driver所打開的所有的頁面的句柄
witchTo是指切換到相應的窗口中去,window中的參數是指要切過去的窗口的句柄
public void testMultiWindow(){driver.findElement(By.id("user")).sendKeys("test");String handle = driver.getWindowHandle();//獲取當前窗口的句柄System.out.println(handle);WebElement element = driver.findElement(By.className("open"));element.click();Set<String> handles = driver.getWindowHandles();for(String s : handles){if(!s.equals(handle)){System.out.println(s);driver.switchTo().window(s);driver.findElement(By.id("kw")).sendKeys("glen");}}driver.switchTo().window(handle);driver.findElement(By.id("user")).sendKeys("---new test"); }