0

我已经构建了一个webscraper来刮擦网址。它偶尔有一个问题(不会一直发生)。我得到了TimeOutException在我的代码,这个特殊的部分:当Webscraping出现Selenium/ChromeDriver超时异常

tries = 0 
while tries<1000: 
    try: 
     domain=wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "cite._Rm"))) 
     domain = domain.text 
     break 
     except StaleElementReferenceException: 
      tries+=1 
      self.browser.refresh() 

错误:

File "", line 389, in findDomains domain=wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "cite._Rm"))) File "", line 78, in until raise TimeoutException(message, screen, stacktrace) TimeoutException: Message:

+1

你在你的问题将不会运行显示的代码。 – Louis

回答

1

既然你有它包裹在多次尝试了一段时间块,只是处理TimeoutException

try: 
    domain=wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "cite._Rm"))) 
    domain = domain.text 
    break 
except (StaleElementReferenceException, TimeoutException): 
    tries+=1 
    self.browser.refresh() 

请注意,如果不能重现问题,或者至少有一个目标网页的链接,但您偶尔遇到问题划线。

0

你得到超时异常,因为超时期间未找到的元素,尝试在代码,以增加它或刷新页面如下图所示

tries = 0 
while tries<1000: 
    try: 
     domain=WebdriverWait(self.browser, timeout=10).until(
      EC.presence_of_element_located((By.CSS_SELECTOR, "cite._Rm")) 
     ) 
     domain_text = domain.text 
     break 
    except TimeoutException: 
     tries+=1 
     self.browser.refresh() 
相关问题