...
You may be getting an interesting error when you try to use an element on a page, such as reading a value from it or clicking on it. This is because when you try to invoke the action, the page hasn’t fully loaded the elements into the DOM. Use the following code courtesy of Gregor to get around the problem
Code Block | ||
---|---|---|
| ||
from selenium.webdriver.support.ui import WebDriverWait element_id = object def find_the_element_by_id(driver): element = driver.find_element_by_id(element_id) if element: return element else: return False def function_where_test_written(): global element_id element_id = "qa" qa = WebDriverWait(driver, 1).until(find_the_element_by_id) qa.click() |
Code explained
Line 1 3 : set up a variable that we can pass the id or whatever the search criteria is into
Line 35-8 10 : create a function that does the query on the DOM using the webdriver that is passed in
...