python - 处理帧时的 Slate 元素引用异常
问题描述
from selenium import webdriver
driver = webdriver.Chrome(executable_path=r'C:\Users\satyanarayana\Downloads\chromedriver_win32\chromedriver.exe')
driver.get("https://www.olx.in/")
frames_tag = driver.find_elements_by_tag_name("iframe")
print(len(frames_tag))
for i in range(0,len(frames_tag)):
driver.switch_to.frame(frames_tag[i])
driver.quit()
我收到以下异常。有人可以帮我弄清楚代码有什么问题。
Traceback (most recent call last):
File "C:/Users/satyanarayana/PycharmProjects/untitled1/Ad.py", line 11, in <module>
driver.switch_to.frame(frames_tag[i])
File "C:\Users\satyanarayana\PycharmProjects\untitled1\venv\lib\site-packages\selenium\webdriver\remote\switch_to.py", line 89, in frame
self._driver.execute(Command.SWITCH_TO_FRAME, {'id': frame_reference})
File "C:\Users\satyanarayana\PycharmProjects\untitled1\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\satyanarayana\PycharmProjects\untitled1\venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
(Session info: chrome=70.0.3538.77)
(Driver info: chromedriver=2.43.600210 (68dcf5eebde37173d4027fa8635e332711d2874a),platform=Windows NT 10.0.17134 x86_64)
解决方案
当您切换到<iframe>
驱动程序上下文更改为<iframe>
并且只能识别其中的元素。<iframe>
完成后需要退出
for i in range(0,len(frames_tag)):
driver.switch_to.frame(frames_tag[i])
driver.switch_to.default_content()
推荐阅读
- excel - 对形状数组进行分组
- node.js - 如何在 Loopback 4 API 中获取和提交带有重音符号和“ñ”的字母等字符
- java - Android如何使用SharedPreferences附加自定义listView
- javascript - 是否可以将 querySelectorAll 与 offsetHeight 一起使用?
- python - 转换和比较 python 多索引数据帧
- php - 无法从带有 WHERE 子句的查询中获取值
- r - 有没有办法自动将 R 中的列与其名称相乘?
- xml - XSLT:复制元素文本,它本身就是一个 xml 文档,而不使用 value-of
- vim - 有没有办法制作不同颜色的拆分窗口或一些如何轻松发现哪个窗口处于活动状态?
- c - 如何正确格式化命令行参数?