iframe是个特殊的标签,相当于在网页内部重新嵌套一个网页。如果selenium要操作iframe里面的元素,则需要先切入iframe。selenium操作iframe方法如下:
1、selenium切换到iframe(定位iframe)
1)iframe有id(理论上id本来就是唯一的),直接写id
driver.switch_to_frame("xxx")
2)有name且唯一,直接写name
driver.switch_to_frame("xxxx")
3)通过索引切换
driver.switch_to_frame(0) # 第一个iframe
4)先定位iframe元素再切换
iframe = driver.find_elements_by_xxxx
driver.switch_to_frame(iframe)
2、frame嵌套
1)从frame中切回主文档
switch_to.default_content()
2)切到父文档(相当于后退)
switch_to.parent_frame()
3)如果iframe1嵌套iframe2,从主文档切到iframe2需要先切入iframe1再切iframe2。
selenium要操作iframe比较简单,下节课我们用网易邮箱测试下,网页邮箱登陆元素就是在iframe里面的。