1. 程式人生 > >[selenium] selenium+java+TestNG 自定義顯示等待

[selenium] selenium+java+TestNG 自定義顯示等待

package APItest;


import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriverException;
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 org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;




public class ExplicitWaitBySelfDefined {
public WebDriver driver;
private String url ="http://www.baidu.com";

@Test
  public void f() {
 WebElement inputBox = (new WebDriverWait(driver, 10)).until(new ExpectedCondition<WebElement>(){
 @Override
 public WebElement apply(WebDriver d){
 return d.findElement(By.id("kw"));
 }
 });
 Assert.assertEquals("wd", inputBox.getAttribute("name"));
 
 Boolean buttonFlag = (new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>(){
 @Override
public Boolean apply(WebDriver dri){
return dri.findElement(By.id("su")).isDisplayed();

 });
 Assert.assertTrue(buttonFlag);
  }
  
  @BeforeMethod
  public void beforeMethod() throws InterruptedException {
 
 System.setProperty("webdriver.chrome.driver","C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe");
 driver = new ChromeDriver();
 System.out.println("open url");
 driver.get(url);
  }


  @AfterMethod
  public void afterMethod() {
 driver.quit();
  }
}