【问题标题】:Selenium Stale Element Error: Problems Automating GoogleSelenium 陈旧元素错误:Google 自动化问题
【发布时间】:2015-04-07 07:17:22
【问题描述】:

我收到“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/except 如下:

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。

关于如何解决这个问题的任何想法?

【问题讨论】:

  • 请发布您正在处理的相关html。
  • @LittlePanda 这是我在谷歌搜索的任何术语。所以如果 company=microsoft,那么我就会遇到这个问题。

标签: python google-chrome selenium selenium-webdriver


【解决方案1】:

为什么不使用time.sleep,然后使用input = browser.find_element_by_id('q')

【讨论】:

  • 这不是一个好的修复方法。它吃掉了cpu和计算机资源。虽然它有效,但我知道有更好的方法来处理这个问题。
猜你喜欢
  • 1970-01-01
  • 2018-12-05
  • 2017-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多