2017-09-27 75 views
0

我試圖等待一個元素在上一步中存在的不可見,上一步是出現的窗口,然後我想等到它關閉才能繼續執行腳本從上一步中的元素是:等待元素爲隱形硒

//textarea[@id="position_description"] 

,但不知道爲什麼它會等待比第一明確的等待時間在指定的時間更多:

class InputAutocompleteElement(InputElement): 
    def __set__(self, obj, value): 
     WebDriverWait(self.driver, 2).until(EC.invisibility_of_element_located((By.XPATH, '//textarea[@id="position_description"]')))    
     driver = obj.driver 
     element = self.find_element(driver, self.locator) 
     element.clear() 
     element.send_keys(value) 
     WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.ID, "idOfAutocompleteDropdown")) 
     element.send_keys(Keys.RETURN) 

時間超過2秒以繼續其餘的線條,我不知道它是否與我h隱含的等待有關當我設置登錄來訪問應用程序時,這個隱含時間的時間是10秒。

+0

請分享網址 – iamsankalp89

+0

要根據JeffC的回答確定等待的混合是否導致問題,可以在顯式等待較長時間之前將隱式等待設置爲0。檢查時間是否減少。在此行之後將其重新設置爲10。 – Grasshopper

+0

感謝球員,問題是隱含的時間,我改變了一切,以明確的時間和速度比以前 – user964503

回答

1

Selenium docs狀態不混合隱式和顯式等待。這可能是你所看到的問題。

警告:不要混合隱式和顯式等待。這樣做會導致無法預測的等待時間。

+0

這不是答案親愛的 – iamsankalp89

+0

@ iamsankalp89證明? OP表示它等待的時間比指定的顯式等待時間長。還說明他有10秒的隱含等待時間。根據鏈接的官方文檔,這是隱含的和顯式的混合,導致「不可預知的等待時間」。我錯過了什麼?答案是什麼? – JeffC

+0

我沒有官方文檔的問題,但它不能解決問題。是的,我會嘗試找到 – iamsankalp89