通过 Selenium 和 python 切换到 iframe
- 2024-11-22 08:47:00
- admin 原创
- 180
问题描述:
我怎样才能在仅知道的情况下在 selenium 中切换到这个 iframe
<iframe name="Dialogue Window">
解决方案 1:
您可以使用 XPath 来定位<iframe>
:
iframe = driver.find_element_by_xpath("//iframe[@name='Dialogue Window']")
然后:switch_to
<iframe>
driver.switch_to.frame(iframe)
以下是如何切换回默认内容(退出<iframe>
):
driver.switch_to.default_content()
解决方案 2:
根据元素的 HTML <iframe>
,它的name属性设置为Dialogue Window。因此,要在 内切换,<iframe>
您需要使用switch_to()
方法,并且可以使用以下任一方法:
使用节点的名称
<iframe>
属性如下:
# driver.switch_to.frame(‘frame_name’)
driver.switch_to.frame("Dialogue Window")
使用通过name属性识别的
<iframe>
WebElement如下:
driver.switch_to.frame(driver.find_element_by_name('Dialogue Window'))
使用通过以下方式识别的
<iframe>
WebElementcss 选择器如下:
driver.switch_to.frame(driver.find_element_by_css_selector("iframe[name='Dialogue Window']"))
使用通过以下方式识别的
<iframe>
WebElementxpath如下:
driver.switch_to.frame(driver.find_element_by_xpath("//iframe[@name='Dialogue Window']"))
理想情况下,您应该像所需帧一样结合expected_conditions引入WebDriverWait,如下所示:frame_to_be_available_and_switch_to_it()
使用NAME:
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.NAME,"Dialogue Window")))
使用CSS_SELECTOR:
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"iframe[name='Dialogue Window']")))
使用XPATH:
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[@name='Dialogue Window']")))
从框架切换回来
要切换回父框架,可以使用以下代码行:
driver.switch_to.parent_frame()
要切换回顶级浏览上下文/顶级窗口,您可以使用以下代码行:
driver.switch_to.default_content()
总结
iframe 下 #document 的处理方法
解决方案 3:
我已经在 Python-Selenium 中解决了这个问题。请使用以下代码:
srtHandle = driver.window_handles
driver.switch_to_window(srtHandle[0])
然后切换到元素所在的框架。
相关推荐
热门文章
项目管理软件有哪些?
热门标签
云禅道AD