2017-07-17 43 views

回答

2

您可以使用presence_of_element_locatedexplicit waiting用CSS選擇器來定位元素:

from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.common.exceptions import TimeoutException 

try: 
    element = WebDriverWait(driver, 10).until(
     EC.presence_of_element_located((By.CSS_SELECTOR, "option[value='123']")) 
    ) 
    print("Option loaded") 
except TimeoutException: 
    print("Time exceeded!") 

# Do Your Stuff 
+1

感謝這麼多的解決方案。在「最後」中,我打印出page_source,並且該頁面是我想要的。但是,在打印出頁面後,有一條錯誤消息: raise TimeoutException(message,screen,stacktrace) selenium.common.exceptions.TimeoutException:消息: –

+0

@jhhPhi嘿,對不起,看起來像我誤用'finally'語句,現在應該這樣做。我很高興它有幫助,而且,如果它有幫助並解決了您的問題,您應該[接受答案](https://meta.stackexchange.com/a/5235),點擊upvotes旁邊的綠色標記。 –

+0

「超出時間」打印出來。這是不是意味着在特定時間內,該聲明永遠不會回覆真實?因爲它沒有返回true,所以它捕獲TimeoutException,然後繼續執行代碼。當代碼循環10秒時,我的頁面已經完全加載,所以我得到了我想要的頁面。沒有? –