如果页面中有嵌套iframe,直接定位iframe中的元素定位不到,考虑是iframe的原因。应该先定位到iframe,然后再去定位元素。
1.切换到iframe中 switch_to.frame()
from selenium import webdriver
driver = webdriver.Chrome('D:\chromedriver\chromedriver.exe') # 括号内是浏览器驱动地址
driver.switch_to.frame(0) # 1.用frame的index来定位,第一个是0
driver.switch_to.frame("frame1") # 2.用id来定位
driver.switch_to.frame("myframe") # 3.用name来定位
driver.switch_to.frame(driver.find_element_by_tag_name("iframe")) # 4.用WebElement对象来定位
首先采取id和name去定位iframe。
如果frame并无这两项属性,则可以用index和WebElement来定位:
1.index从0开始,传入整型参数即判定为用index定位,传入str参数则判定为用id/name定位
2.WebElement对象,即用find_element系列方法所取得的对象,我们可以用tag_name、css_selector、xpath等来定位frame对