दिखाई देने की प्रतीक्षा वहाँ एक रास्ता एक webDriverWait
तत्वों की एक संख्या प्रकट करने के लिए और तदनुसार पर तत्व दिखाई देता है जो आधारित कार्य करने के लिए में से एक के लिए प्रतीक्षा करने के लिए है?webdriver एक बहु तत्वों में से एक
इस समय मैं एक कोशिश लूप के भीतर WebDriverWait
करता हूं और यदि टाइमआउट अपवाद होता है तो मैं वैकल्पिक कोड चलाता हूं जो अन्य तत्व को प्रकट होने की प्रतीक्षा करता है। यह बेकार लगता है। क्या कोई बेहतर तरीका है? यहाँ मेरी (अनाड़ी) कोड है:
try:
self.waitForElement("//a[contains(text(), '%s')]" % mime)
do stuff ....
except TimeoutException:
self.waitForElement("//li[contains(text(), 'That file already exists')]")
do other stuff ...
यह एक संपूर्ण 10 सेकंड इंतजार कर शामिल होने से पहले ही संदेश है कि फाइल सिस्टम पर पहले से मौजूद है, तो देखने के लिए लग रहा है।
समारोह waitForElement
सिर्फ WebDriverWait
कॉल तो तरह की एक संख्या है:
def waitForElement(self, xPathLocator, untilElementAppears=True):
self.log.debug("Waiting for element located by:\n%s\nwhen untilElementAppears is set to %s" % (xPathLocator,untilElementAppears))
if untilElementAppears:
if xPathLocator.startswith("//title"):
WebDriverWait(self.driver, 10).until(lambda driver : self.driver.find_element_by_xpath(xPathLocator))
else:
WebDriverWait(self.driver, 10).until(lambda driver : self.driver.find_element_by_xpath(xPathLocator).is_displayed())
else:
WebDriverWait(self.driver, 10).until(lambda driver : len(self.driver.find_elements_by_xpath(xPathLocator))==0)
किसी भी सुझाव यह एक अधिक कुशल तरीके से पूरा करने के लिए मिल गया?
धन्यवाद चलाने के लिए है। वह काम करेगा। – amadain