Selenium waitForElement
From the Selenium Documentation PDF :
import contextlib
import selenium.webdriver as webdriver
import selenium.webdriver.support.ui as ui
with contextlib.closing(webdriver.Firefox()) as driver:
driver.get('http://www.google.com')
wait = ui.WebDriverWait(driver,10)
# Do not call `implicitly_wait` if using `WebDriverWait`.
# It magnifies the timeout.
# driver.implicitly_wait(10)
inputElement=driver.find_element_by_name('q')
inputElement.send_keys('Cheese!')
inputElement.submit()
print(driver.title)
wait.until(lambda driver: driver.title.lower().startswith('cheese!'))
print(driver.title)
# This raises
# selenium.common.exceptions.TimeoutException: Message: None
# after 10 seconds
wait.until(lambda driver: driver.find_element_by_id('someId'))
print(driver.title)
WaitForElement in Selenium WebDriver?
I have used this similar code in my project and it works for me.
Selenium WaitForElement in c# throws ElementNotVisibleException
ExpectedConditions.ElementExists();
is waiting for the element to exists in the DOM . To make sure the element is visible in the website use ExpectedConditions.ElementIsVisible()
wait.Until(ExpectedConditions.ElementIsVisible(selector));
As a side not, if wait.Until
condition doesn't met it throws WebDriverTimeoutException
, not NoSuchElementException
.
WebDriver - wait for element using Java
This is how I do it in my code.
WebDriverWait wait = new WebDriverWait(webDriver, timeoutInSeconds);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id<locator>));
or
wait.until(ExpectedConditions.elementToBeClickable(By.id<locator>));
to be precise.
See also:
- org.openqa.selenium.support.ui.ExpectedConditions for similar shortcuts for various wait scenarios.
- org.openqa.selenium.support.ui.WebDriverWait for its various constructors.
Selenium wait for element to reload
I don't know about a hook; Selenium seems to implement these waits with "polling" rather than hooks.
So, can you wait on a condition, the condition being that the list contains the expected new number of comments?
Is there a WaitForText or WaitForElement method in Selenium 2?
I am using this code in Java - it checks for 3 seconds (configurable) for specified element:
WebDriverWait wait = new WebDriverWait(driver, /*seconds=*/3);
elementOfPage = wait.until(presenceOfElementLocated(By.id("id_of_element")));
Function<WebDriver, WebElement> presenceOfElementLocated(final By locator) {
return new Function<WebDriver, WebElement>() {
public WebElement apply(WebDriver driver) {
return driver.findElement(locator);
}
};
}
Related Topics
What Does -1 Mean in Numpy Reshape
How to Create Multiline Comments in Python
How to Create Test and Train Samples from One Dataframe with Pandas
Programmatically Saving Image to Django Imagefield
Relative Imports - Modulenotfounderror: No Module Named X
Ignore Python Multiple Return Value
Replacing Column Values in a Pandas Dataframe
Django Passing Custom Form Parameters to Formset
How to Uninstall Anaconda Completely from MACos
How to Get a Random Number Between a Float Range
How to Make a Tkinter Window Jump to the Front
List Comprehension VS Generator Expression's Weird Timeit Results
How to Decrypt Openssl Aes-Encrypted Files in Python
How to Shift a Column in Pandas Dataframe
Tensorflow Only Running on 1/32 of the Training Data Provided