1

Is there a way that I can index an iframe?

I have:

driver.switch_to_frame(driver.find_element_by_tag_name("iframe[2]"))

but it is not working

royalblue
  • 439
  • 2
  • 8
  • 18
  • use `find_elements` instead of `find_element` to get list of all possible elements that match your selector , and then you can call each by index – Andersson Dec 01 '15 at 21:30
  • Possible duplicate of [function for switching frames in python, selenium](http://stackoverflow.com/questions/28723143/function-for-switching-frames-in-python-selenium) – JeffC Dec 02 '15 at 03:09

1 Answers1

2

You can get them by xpath like //iframe, see the below:

>>> driver.find_elements_by_xpath("//iframe")
[<selenium.webdriver.remote.webelement.WebElement (session="8fe49e6f771affad4a64c6f235d5d799", element="0.09337671450339258-1")>, <selenium.webdriver.remote.webelement.WebElement (session="8fe49e6f771affad4a64c6f235d5d799", element="0.09337671450339258-2")>, <selenium.webdriver.remote.webelement.WebElement (session="8fe49e6f771affad4a64c6f235d5d799", element="0.09337671450339258-3")>, <selenium.webdriver.remote.webelement.WebElement (session="8fe49e6f771affad4a64c6f235d5d799", element="0.09337671450339258-4")>, <selenium.webdriver.remote.webelement.WebElement (session="8fe49e6f771affad4a64c6f235d5d799", element="0.09337671450339258-5")>]
>>>
>>> iframes = driver.find_elements_by_xpath("//iframe")
>>> iframes[0]
<selenium.webdriver.remote.webelement.WebElement (session="8fe49e6f771affad4a64c6f235d5d799", element="0.09337671450339258-1")>
>>> driver.switch_to_frame(iframes[0])
Mesut GUNES
  • 7,089
  • 2
  • 32
  • 49