Selenium(十二)嵌套frame定位

第一种:iframe有id、name属性

网页上有3个frame:header、menu、main,分别代码顶部、左侧、右侧(其中menu、main在另外一个frameset中)

如何定位到“header”框架:

driver.switch_to_frame("header")

如何定位到“main”框架:

driver.switch_to_default_content()

driver.switch_to_frame(driver.find_element_by_name("main"))

第二种:iframe无id或name属性

如何定位到“iframe”框架:

frame1=driver.find_element_by_tag_name("iframe")
driver.switch_to_frame(frame1)

第三种:页面有多个iframe属性,且无name、id动态变化

#coding: utf-8
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By

driver = webdriver.Firefox()
driver.get('http://you.163.com/')

driver.find_element_by_xpath('//*[@id="j-yx-cp-m-siteNav"]/div/div[2]/div[1]/div[1]/div/div').click()
sleep(3)

driver.find_element_by_xpath('//*[@id="j-yx-loginFormWrap"]/div/div[1]/div[2]/div[3]').click()

driver.switch_to.frame(2)    #从0开始,第三个iframe
driver.find_element_by_name("email").send_keys('ok.qq.com')
driver.find_element_by_name("password").send_keys('ok1')
driver.find_element_by_id('dologin').click()
原文地址:https://www.cnblogs.com/dydxw/p/10551160.html