Webdriver Wait For One Of A Multiple Elements To Appear
Is there a way to get a webDriverWait to wait for one of a number of elements to appear and to act accordingly based on which element appears? At the moment I do a WebDriverWait wi
Solution 1:
Create a function that takes a map of identifiers to xpath queries and returns the identifier that was matched.
defwait_for_one(self, elements):
self.waitForElement("|".join(elements.values())
for (key, value) in elements.iteritems():
try:
self.driver.find_element_by_xpath(value)
except NoSuchElementException:
passelse:
return key
defothermethod(self):
found = self.wait_for_one({
"mime": "//a[contains(text(), '%s')]",
"exists_error": "//li[contains(text(), 'That file already exists')]"
})
if found == 'mime':
do stuff ...
elif found == 'exists_error':
do other stuff ...
Solution 2:
Something like that:
defwait_for_one(self, xpath0, xpath1):
self.waitForElement("%s|%s" % (xpath0, xpath1))
returnint(self.selenium.is_element_present(xpath1))
Post a Comment for "Webdriver Wait For One Of A Multiple Elements To Appear"