2015-04-07 59 views
1

我得到一個「StaleElementReferenceException:消息:陳舊的元素引用:元素沒有附加到頁面文檔」。我的代碼如下。硒陳舊元素錯誤:自動化谷歌的問題

browser = webdriver.Chrome() 
     browser.get('https://www.google.com/') 
     for i in range(searchrow, numrows): 

      wait = WebDriverWait(browser, 20) 
      inputGoogle=wait.until(EC.presence_of_element_located((By.NAME, "q"))) 
      company = sheet.cell_value(i, 1) 
      inputGoogle.send_keys(company) 
      inputGoogle.submit() 

      wait = WebDriverWait(browser, 20) 
      wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "cite._Rm"))) 
      domain = browser.find_element_by_css_selector("cite._Rm") 
      domain = domain.text 

我想這相同的代碼,除了與一試/除非這樣的:

try: 
    wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "cite._Rm"))) 
    domain = browser.find_element_by_css_selector("cite._Rm") 
except: StaleElementReferenceException 
    continue 

它並沒有解決我的問題。事實上,它只是吃了很多的CPU,因爲它只是在等待和等待。

有關如何解決此問題的任何想法?

+0

請發表你正在處理相關的HTML。 – LittlePanda

+0

@LittlePanda它是我在谷歌搜索的任何術語。所以如果company = microsoft,那麼我會遇到這個問題。 – ohbrobig

回答

0

爲什麼不使用time.sleep然後input = browser.find_element_by_id('q')

+0

這不是一個很好的解決方法。它吃掉了CPU和計算機資源。雖然它有效,但我知道有一個更好的方法來處理這個問題。 – ohbrobig

相關問題