2017-07-26 95 views
2

我試圖查看是否有評論部分在YouTube視頻上啓用。如果不是,程序應該再次返回頂部。Try/Except無法使用TimeoutException

def bot1(): 
    while True: 

     # First search 
     driver.get("https://www.youtube.com/results?sp=CAISAggBUBQ%253D&q=" + k1) 
     driver.find_element_by_class_name("yt-uix-tile-link").click() 
     try: 
      WebDriverWait(driver, 15).until(
       EC.presence_of_element_located((By.CLASS_NAME, "comment-simplebox-renderer-collapsed-content")) 
      ) 
     except TimeoutException: 
      bot1() 

這給我的錯誤

Traceback (most recent call last): 
    File "C:/Users/Admin/Desktop/My Programs/YouTubeTest/YouTubeTest.py", line 98, in <module> 
    bot1() 
    File "C:/Users/Admin/Desktop/My Programs/YouTubeTest/YouTubeTest.py", line 73, in bot1 
    EC.presence_of_element_located((By.CLASS_NAME, "comment-simplebox-renderer-collapsed-content")) 
    File "C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\lib\site-packages\selenium\webdriver\support\wait.py", line 80, in until 
    raise TimeoutException(message, screen, stacktrace) 
selenium.common.exceptions.TimeoutException: Message: 

我得到這個

from selenium.common.exceptions import TimeoutException 

我不知道爲什麼會這樣。

+1

你什麼時候可以期待代碼打破? – TerryA

+0

經過WebDriverWait。如果它在10秒內沒有找到評論部分,它會中斷。 –

回答

0

第一件事,沒有打破循環的條件,這是一個無限循環。

selenium.common.exceptions.TimeoutException和正常的TimeoutException不同

+0

那麼如果沒有找到評論部分,我該如何去頂部? –

+0

我不認爲遞歸調用bot1()是正確的方法。嘗試使用其他方式實現邏輯.. – Jomin

+0

好的。但爲什麼它給了我這個錯誤?它應該工作正確嗎? –

相關問題