Untitled
unknown
plain_text
2 years ago
2.0 kB
10
Indexable
package webdriver;
import java.time.Duration;
import java.util.NoSuchElementException;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.FluentWait;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import com.google.common.base.Function;
public class Topic_33_Fluent_Wait {
WebDriver driver;
String projectPath = System.getProperty("user.dir");
String osName = System.getProperty("os.name");
FluentWait<WebDriver> fluentDriver;
long allTime = 15;
long pollingTime = 100;
@BeforeClass
public void beforeClass() {
if (osName.contains("Windows")) {
System.setProperty("webdriver.gecko.driver", projectPath + "\\browserDrivers\\geckodriver.exe");
} else {
System.setProperty("webdriver.gecko.driver", projectPath + "/browserDrivers/geckodriver");
}
driver = new FirefoxDriver();
driver.manage().window().maximize();
}
@Test
public void TC_01_Fluent() {
driver.get("https://automationfc.github.io/dynamic-loading/");
findElement("//div[@id='start']/button").click();
Assert.assertEquals(findElement("//div[@id='finish']/h4").getText(), "Hello World!");
}
public WebElement findElement(String xpathLocator) {
fluentDriver = new FluentWait<WebDriver>(driver);
// set tổng thời gian và tần số
fluentDriver.withTimeout(Duration.ofSeconds(allTime))
.pollingEvery(Duration.ofMillis(pollingTime))
.ignoring(NoSuchElementException.class);
// apply điều kiện
return fluentDriver.until(new Function<WebDriver, WebElement>() {
@Override
public WebElement apply(WebDriver driver) {
return driver.findElement(By.xpath(xpathLocator));
}
});
}
@AfterClass
public void afterClass() {
driver.quit();
}
}
Editor is loading...