2016-02-24 47 views
0

因此,我有一段代碼檢查網頁的一部分,以查看狀態是否已更改爲轉到腳本中的下一步。它刷新頁面,如果它沒有,理想情況下,我希望腳本在此網頁上等待大約5-10秒,然後再次刷新頁面。這是我爲這個電流回路:Selenium-Python:在重新加載頁面之前,我如何讓WebDriverWait幾秒鐘?

orderElem = driver.find_element(By.CSS_SELECTOR, "dd.Production.Status") 

while(orderElem.text != "Output Complete"): 
     WebDriverWait(driver, 10) 
     driver.refresh() 
     WebDriverWait(driver, 5).until(
      EC.visibility_of_element_located((By.CSS_SELECTOR, "dd.Production.Status")) 
     ) 
     orderElem = driver.find_element(By.CSS_SELECTOR, "dd.Production.Status") 
+0

你在找'time.sleep()'這樣的東西嗎? –

回答

1

你可以明確地就等着與time.sleep(10)而不是WebDriverWait

好像你正試圖刷新輪詢頁面每隔10秒鐘,直至orderElem.text == 'Output Complete',在這種情況下:

def until_func(driver): 
    driver.refresh() 
    elem = driver.find_element_by_css_selector("dd.Production.Status") 
    if elem.is_displayed() and elem.text == 'Output Complete': 
     return elem 
orderElem = WebDriverWait(driver, timeout=60, poll_frequency=10).until(until_func) 

這將刷新頁面每隔10秒,檢查所需的元素是可見的,並且具有正確的文本,並在滿足這些條件時返回元素。

+0

謝謝。這個函數,以及time.sleep(10),都很完美。 – SneakersSO

相關問題