须知:如果在前端页面源码内复制结点的xpath查找不到数据!!!!,记得要自己在写一下xpath语句试一试
目标:
1:掌握selenium 控制浏览器对象切换iframe(内嵌框架)的使用场景
2:掌握selenium 怎么切换 iframe 结点
3:掌握selenium 切换到iframe结点后怎么切换回来(其他的层)
一:selenium 控制浏览器对象切换iframe(内嵌框架)的背景
答:有的网站前端渲染后的html代码是嵌套类型的,就是一个网页html代码中有一个或者多个iframe结点,其中一个iframe结点就代表一个全新的网页(一般网站的登录功能都是一个iframe结点),当利用 selenium 获取iframe 结点下面子节点并对其操作时,是不能成功的,因为 selenium 只能从 iframe 结点外面的其他结点数据中查找其他的元素,对于这种情况就要用 selenium 控制浏览器切换 iframe了,这样就可以定位到 iframe 结点中的其他结点并对其操作啦!!
注意:一般登录功能区都在iframe结点下面哦!!

二: selenium 怎么切换 iframe
语法1:
from selenium import webdriver 导入模块
iframe_node = 浏览器对象.find_element_by_xpath( “xpath语法” ) 查找待切换的iframe结点对象
浏览器对象.switch_to.frame(查找到的iframe结点对象) 利用switch方法进行切换,切换成功后即可定位iframe结点下的子节点并对其操作
语法2:
from selenium import webdriver 导入模块
浏览器对象.switch_to.frame ( iframe结点的 id|name 属性值 ) 通过目标 iframe 结点的 id、name属性值可直接定位iframe结点切换
注意事项:
1:浏览器对象.switch_to.frame(查找到的iframe结点对象) 中的frame没有I
2:如果目标 iframe 结点中有 id 以及 name 属性,那么直接通过第二种语法定位iframe结点
代码截图:

——————————————————————————————————————————————
三: selenium 切换到iframe结点后怎么切换回来(其他的层)
语法:
浏览器对象.switch_to.parent_frame( ):切换到当前iframe结点的上一级处!
浏览器对象.switch_to.default_content( ):切换到主界面(刚打开浏览器所在的界面)
