我的程序抛出一条错误消息“stale element reference:element未附加到页面文档”。当我查看前面的帖子(如Python Selenium陈旧元素修复)时,我发现我没有在调用click函数后更新url。我更新了网址。然而,它并没有解决这个问题。谁能指出我哪里出错了?下面是我的代码:
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--disable-infobars")
driver = webdriver.Chrome(chrome_options=chrome_options,executable_path="path of driver here")
driver.get("https://stackoverflow.com/users/37181/alex-gaynor?tab=topactivity")
if driver.find_elements_by_xpath("//a[@class='grid--cell fc-white js-notice-close']"):
driver.find_element_by_xpath("//a[@class='grid--cell fc-white js-notice-close']").click()
inner_tabs = driver.find_elements_by_xpath("//div[@class='tabs']//a")
for inner_tab in inner_tabs:
if inner_tab.text == "answers":
inner_tab.click()
time.sleep(3)
driver.get(driver.current_url)
continue
if inner_tab.text == "questions":
inner_tab.click()
time.sleep(3)
driver.get(driver.current_url)
continue
driver.quit()
当您通过单击链接或driver.get()
打开新URL时,它将创建新的document元素,因此旧元素(inner_tab
)将失效。要解决这个问题,首先收集所有URL然后打开循环。
urls_to_visit = []
for inner_tab in inner_tabs:
if inner_tab.text in ["questions", "answers"]:
urls_to_visit.append(inner_tab.get_attribute("href"))
for url in urls_to_visit:
driver.get(url)
time.sleep(3)
这是HTML结构如下所示 错误跟踪为:
我在我的selenium java项目中不断收到一条错误消息。
我正在尝试读取联系人页面中的数据,但遇到此异常。
我试图理解为什么在我试图显示从网站获取的项目时会出现错误。我也在使用谷歌chrome浏览器。 这是我代码的其他部分 每当我使用"chromeDriver.FindElement(By.ID(something.link.text))。单击();",它会给出一个错误。我不能显示我提取的数据。 在错误消息中,它显示“OpenQA.Selenium.StaleElementReferenceExcept
我的超文本标记语言-Page包含(除其他内容外)以下内容: 在测试页面的代码中,我将执行以下操作: 这个和 然而,这个错误似乎并不合理,因为元素仍然是活动的: 我如何解决这个问题? (环境是APL。我在这里省略了一些APL细节,因为我担心它们可能会避免从核心问题上“分散注意力”) 在发帖前的研究过程中,我看到了一个问题:元素未附加到页面文档,但似乎不适用: 如图所示,我正在执行,并在找到它后立即访