iframe也称作嵌入式框架,嵌入式框架和框架网页类似,它可以把一个网页的框架和内容嵌入在现有的网页中。web应用中经常会遇到frame/iframe表单嵌套页面的应用,webDriver只能在一个页面上对元素识别与定位,对于frame/iframe表单内嵌页面上对元素无法直接定位。这时需要switch_to.frame()方法将当前定位的主体切换到内嵌页面中。此外,
> switch_to.parent_content: 跳出当前一级表单,单一个页面内嵌多个表单时, 则可以通过switch_to.parent_content()方法跳出当前一级表单。
> switch_to.default_content(): 跳出最外层的页面.进入多级表单的情况下,还可以通过switch_to.default_content()跳回最外层的页面。
url ="https://www.126.com"
driver.get(url)
time.sleep(3)
driver.switch_to.window(driver.window_handles[-1])
#driver.switch_to.frame("frameforlogin") # 切换到iframe by name
driver.switch_to.frame(0)# 切换到iframe by index
driver.find_element_by_xpath("//*[@class='j-inputtext dlemail j-nameforslide']").send_keys("selenium switch test")# 在帐号输入框内输入
time.sleep(2)
driver.quit()