【发布时间】:2019-08-19 20:26:15
【问题描述】:
在使用 Python3 + selenium 导航到页面后,我正在尝试下载表格中的链接。使用 selenium 单击链接并检查最新加载页面上的元素后,我可以看到我的元素位于名为“内容”的框架内。但是,当我尝试访问此框架时,调用:
DRIVER.switch_to_frame("contents")
我收到以下错误:
selenium.common.exceptions.NoSuchFrameException: Message: contents
为了获得更多上下文,我应用了一个实验。我使用 DRIVER.get(URL) 加载的页面和我导航到的页面都有一个名为“菜单”的框架。
我可以在第一页调用 DRIVER.switch_to_frame("menu"),但不能在第二页调用。
DRIVER = webdriver.Chrome(CHROME_DRIVER)
DRIVER.get(SITE_URL)
DRIVER.switch_to_frame("contents") # This works
target_element = DRIVER.find_element_by_name(LINK)
target_element.click()
time.sleep(5)
DRIVER.switch_to_frame("menu")
target_element = DRIVER.find_element_by_name(LINK2)
target_element.click()
target_element = DRIVER.find_element_by_name(LINK3)
target_element.click()
DRIVER.switch_to_frame("contents") # Code breaks here.
target_element = DRIVER.find_element_by_xpath(REF)
target_element.click()
print("Program complete.")
我希望代码能够在“内容”框架中找到链接的 xpath 引用。相反,当尝试切换到“内容”框架时,python 运行时错误并且找不到“内容”。
【问题讨论】:
标签: python-3.x selenium iframe frame webdriverwait