use of org.openqa.selenium.support.ui.ExpectedCondition in project thewaiter by iamalittletester.
the class Waiter method click.
/**
* Try to click on an element during the specifiedTimeout number of seconds.
*
* @param element - the element to click on
* @param driver - the WebDriver instance
* @param specifiedTimeout - amount of seconds you want to wait for
*/
public void click(WebElement element, WebDriver driver, int specifiedTimeout) {
WebDriverWait wait = new WebDriverWait(driver, specifiedTimeout);
ExpectedCondition<Boolean> elementIsClickable = arg0 -> {
try {
element.click();
return true;
} catch (Exception e) {
return false;
}
};
wait.until(elementIsClickable);
}
use of org.openqa.selenium.support.ui.ExpectedCondition in project thewaiter by iamalittletester.
the class Waiter method waitForElementAttributeContainsString_IgnoreCase.
/**
* Method that waits for an element's specified attribute's value to contain another specified String, no matter
* the case of the actual or expected value.
* Compares the value resulted from getAttribute(nameOfAttribute) on the element with the expected String,
* ignoring the cases.
* Will wait for up to the specifiedTimeout number of seconds for the expected condition to occur.
*
* @param element - the WebElement whose attribute we are interested in
* @param attribute - the attribute whose value needs to be compared to another value
* @param expectedString - the expected value of the WebElement's attribute, case insensitive
* @param driver - the WebDriver instance
* @param specifiedTimeout - amount of seconds you want to wait for
*/
public void waitForElementAttributeContainsString_IgnoreCase(WebElement element, String attribute, String expectedString, WebDriver driver, int specifiedTimeout) {
WebDriverWait wait = new WebDriverWait(driver, specifiedTimeout);
ExpectedCondition<Boolean> elementAttributeContainsStringIC = arg0 -> element.getAttribute(attribute).toLowerCase().contains(expectedString.toLowerCase());
wait.until(elementAttributeContainsStringIC);
}
use of org.openqa.selenium.support.ui.ExpectedCondition in project thewaiter by iamalittletester.
the class Waiter method waitForUrlContains_IgnoreCase.
/**
* Wait for a URL containing a specified String to open in the browser, ignoring the case of the url.
* Checks whether a lower case value of the actual URL contains a lower case value of the expected String.
* Wait for the specifiedTimeout number of seconds.
*
* @param expectedString - the String that needs to be included in the URL
* @param driver - the WebDriver instance
* @param specifiedTimeout - amount of seconds you want to wait for
*/
public void waitForUrlContains_IgnoreCase(String expectedString, WebDriver driver, int specifiedTimeout) {
WebDriverWait wait = new WebDriverWait(driver, specifiedTimeout);
ExpectedCondition<Boolean> urlIsCorrect = arg0 -> driver.getCurrentUrl().toLowerCase().contains(expectedString.toLowerCase());
wait.until(urlIsCorrect);
waitForPageLoadComplete(driver, specifiedTimeout);
}
use of org.openqa.selenium.support.ui.ExpectedCondition in project thewaiter by iamalittletester.
the class Waiter method waitForElementTextContainsString_IgnoreWhitespaces.
/**
* Method that waits for the text on the element (whose
* whitespaces are removed) to contain an expected String (whose whitespaces are also removed).
* Basically, does a getText() on the WebElement, removes all whitespaces from this resulting String, then checks
* that this value contains another String that has no whitespaces.
* Whitespaces include: space, new line, tab.
* When calling the method, the expectedString can contain whitespaces, as they are removed inside this method.
* Therefore, 'this string here' will contain 'str ing here'.
* Will wait for up to the specifiedTimeout number of seconds for the text on the element to be the expected one.
*
* @param element - the WebElement whose text will be compared to an expected value after removing the
* whitespaces on this text
* @param expectedString - the value expected to be part of the WebElement's text on which a whitespace removal is
* also done
* @param driver - the WebDriver instance
* @param specifiedTimeout - amount of seconds you want to wait for
*/
public void waitForElementTextContainsString_IgnoreWhitespaces(WebElement element, String expectedString, WebDriver driver, int specifiedTimeout) {
WebDriverWait wait = new WebDriverWait(driver, specifiedTimeout);
ExpectedCondition<Boolean> elementTextContainsString = arg0 -> element.getText().replaceAll("\\s", "").contains(expectedString.replaceAll("\\s", ""));
wait.until(elementTextContainsString);
}
use of org.openqa.selenium.support.ui.ExpectedCondition in project thewaiter by iamalittletester.
the class Waiter method waitForElementAttributeContainsString_IgnoreWhitespaces.
/**
* Method that waits for an element's attribute value (whose whitespaces are removed) to contain an expected
* String (whose whitespaces are also removed).
* Basically, does a getAttribute(nameOfAttribute) on the WebElement, removes all whitespaces from this resulting
* String, then compares this value to another String that contains no whitespaces.
* When calling the method, the expectedString can contain whitespaces, as they are removed inside this method.
* Whitespaces include: space, new line, tab.
* Having said that, only the non whitespace characters are compared.
* Will wait for up to the specified timeout number of seconds for expected condition to occur.
*
* @param element - the WebElement whose attribute will be verified
* @param attribute - the attribute whose value will be verified
* @param expectedString - the expected value of the WebElement's attribute on which a whitespace removal is also
* done
* @param driver - the WebDriver instance
* @param specifiedTimeout - the amount of seconds to wait for the condition to occur
*/
public void waitForElementAttributeContainsString_IgnoreWhitespaces(WebElement element, String attribute, String expectedString, WebDriver driver, int specifiedTimeout) {
WebDriverWait wait = new WebDriverWait(driver, specifiedTimeout);
ExpectedCondition<Boolean> elementAttributeContainsStringIW = arg0 -> element.getAttribute(attribute).replaceAll("\\s", "").contains(expectedString.replaceAll("\\s", ""));
wait.until(elementAttributeContainsStringIW);
}
Aggregations