首页 > 解决方案 > 如果它是使用python selenium动态创建的,如何切换到iframe

问题描述

在我的情况下,iframe 是在加载时动态创建的,有时会创建 2 个 iframe,有时会创建 3 个 iframe。我想得到最后一个 iframe。我试过了

  iframe_list =  driver.find_elements_by_tag_name("iframe")
  length = len(iframe_list)
  print(length) 
  length=length-1 // because switch_to.frame starts with 0
  print(length)
  driver.switch_to.frame(length) // not working

使用这个我无法访问这个 iframe 中的元素,我也尝试打印

  print(driver.switch_to.frame(length))  // output None 

在此处输入图像描述 那么如何在使用python selenium动态创建时获取最后一个iframe

标签: pythonseleniumiframe

解决方案


获取最后一个 iframe 元素。

driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[-1])

或者将 [last()] 与 xpath 一起使用。

 driver.switch_to.frame(driver.find_element_by_xpath("(//iframe)[last()]"))

推荐阅读