
Wait - Different types of Selenium WebDriver Waits
Regular wait - המתנה חד פעמית
Thread.sleep(מספר);
או
WebDriverWait wait = new WebDriverWait(driver, 10);
implicitlyWait - משפיע על כל פעולה שנעשת
drv=new FirefoxDriver();
drv.get("https://gmail.com");
drv.manage().window().maximize();
//לא שימושי לחקות לאובייקט או לחקות לאחר שהדף עלה
drv.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS)
explicit wait - המתנה לאובייקט ספציפי
// explicit wait - to wait for the compose button to be click-able
WebDriverWait wait = new WebDriverWait(driver,30);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[contains(text(),'COMPOSE')]")));
// יש עוד פונקציות ExpectedConditions.ל
//(1
כמו- ExpectedConditions.elementToBeClickable//
// (2
ממתין עד שהמילה "hello world" תופיע//
// click on the compose button as soon as the "compose" button is visible
drv.findElement(By.xpath("//div[contains(text(),'COMPOSE')]")).click();
Synchronization:
Thread.sleep(1000);
driver.manage().timeouts().pageLoadTimeout(5, TimeUnit.SECONDS);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("Test")));
wait.until(ExpectedConditions.elementToBeClickable(By.id("Test")));
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("Test")));
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.id("Test")));
wait.until(ExpectedConditions.textToBePresentInElementLocated(By.id("Test"), "Text to Insert"));
wait.until(ExpectedConditions.titleIs("My title"));
wait.until(ExpectedConditions.titleContains("My title Contains"));
FUNCTIONS
public void WaitForList( int timeoutInSeconds, List<WebElement> elements)
{
WebDriverWait wait = new WebDriverWait(driver,timeoutInSeconds);
// return wait.until(ExpectedConditions.visibilityOfElementLocated(sideNave));
wait.until(ExpectedConditions.visibilityOfAllElements(elements));
int x = elements.size();
if(x==0)
{
test.log(LogStatus.FAIL, "Waiting "+ timeoutInSeconds +" for web element , not found - " + elements.toString());
fail("WaitForList" + elements );
}
}
public void WaitForElement( int timeoutInSeconds, WebElement element)
{
WebDriverWait wait = new WebDriverWait(driver,timeoutInSeconds);
// return wait.until(ExpectedConditions.visibilityOfElementLocated(sideNave));
boolean hh = wait.until(ExpectedConditions.visibilityOf(element)).isDisplayed();
if(hh== false)
{
test.log(LogStatus.FAIL, "Waiting "+ timeoutInSeconds +" for web element, not found- " + element.toString());
fail("WaitForElement " + element );
}
}
