webDriverWait
görüntülenmesi için bir dizi öğenin görüntülenmesini beklemek ve hangi öğenin göründüğüne bağlı olarak hareket etmek için bir yol var mı?webdriver Birden fazla öğeden birinin görünmesi için bekle
Şu anda bir deneme döngüsü içinde WebDriverWait
yapıyorum ve zaman aşımı istisnası oluşursa, diğer öğenin görünmesini bekleyen alternatif kodu çalıştırıyorum. Bu beceriksiz görünüyor. Daha iyi bir yolu var mı? İşte benim (beceriksiz) kodu şudur: dosya sistemde zaten var mesajı olmadığını görmek için bakar önce Tamamında 10 saniye beklemeyi gerektirir
try:
self.waitForElement("//a[contains(text(), '%s')]" % mime)
do stuff ....
except TimeoutException:
self.waitForElement("//li[contains(text(), 'That file already exists')]")
do other stuff ...
.
fonksiyon waitForElement
sadece bu yüzden gibi WebDriverWait
aramaların sayısı kapsamaz:
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)
Herkes herhangi bir öneri daha verimli bir şekilde bunu gerçekleştirmek için var? Böyle
'un hangi kodu çalıştıracağını size söyleyebilir. Bu işe yarayacak. – amadain