为了账号安全,请及时绑定邮箱和手机立即绑定

程序在调试模式下运行正常,但正常运行却出现错误

程序在调试模式下运行正常,但正常运行却出现错误

明月笑刀无情 2023-11-09 21:42:29
这是我当前的代码,但是每当我运行它时,最后一行都会出现错误stale element reference: element is not attached to the page documentfrom selenium import webdriverurl = "https://otctransparency.finra.org/otctransparency/OtcDownload"driver.get(url)driver.maximize_window()driver.implicitly_wait(5)agree = driver.find_elements_by_xpath("//button[@class='btn btn-warning']")[0]agree.click()nonats = driver.find_element_by_link_text('OTC (Non-ATS) Download')nonats.click()driver.find_element_by_xpath("//img[@src='./assets/icon_download.png']").click()driver.switch_to.window(driver.window_handles[0])driver.find_element_by_xpath("(//div[@class='checkbox-inline'])[2]").click()driver.find_element_by_xpath("(//div[@class='checkbox-inline'])[1]").click()driver.implicitly_wait(5)button = driver.find_element_by_xpath("//img[@src='./assets/icon_download.png']")print(button.is_displayed())button.click()当我在调试模式下逐行运行代码时,一切正常,没有任何错误。任何帮助都会很棒。编辑:这是我的堆栈跟踪Traceback (most recent call last): File "C:\Users\derpe\Desktop\python projects personal\testing finra\untitled1.py", line 31, in <module>    button.click()  File "C:\Users\derpe\anaconda3\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click    self._execute(Command.CLICK_ELEMENT)  File "C:\Users\derpe\anaconda3\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute    return self._parent.execute(command, params)  File "C:\Users\derpe\anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute    self.error_handler.check_response(response)  File "C:\Users\derpe\anaconda3\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response    raise exception_class(message, screen, stacktrace)StaleElementReferenceException: stale element reference: element is not attached to the page document  (Session info: chrome=86.0.4240.75)
查看完整描述

1 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

当您搜索下载链接时,单击复选框会触发页面刷新。


调用sleep以允许刷新完成。


driver.implicitly_wait(5)

import time   # add this 

time.sleep(1)   # add this

button = driver.find_element_by_xpath("//img[@src='./assets/icon_download.png']")

print(button.is_displayed())

button.click()

我尝试了其他硒等待,但它们对我不起作用。可能是因为元素搜索在刷新开始之前成功但仍然点击较晚。


查看完整回答
反对 回复 2023-11-09
  • 1 回答
  • 0 关注
  • 98 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信