frame标记
- frame是HTML语法里的框架,你可以在同一个浏览器窗口中显示不止一个网页。
- HTML5不支持标签,HTML4支持标签
iframe标记
- iframe称为"内联框架",写在body里,用于嵌入另一个网页。
<iframe src="a.htm"></iframe> <iframe src="b.htm"></iframe> <iframe src="c.htm"></iframe>
- selenium自动化测试时,如果网页里目标元素位于frame或iframe内部的网页里,必须切换Frame,frameset不用做任何处理
切换Frame应用场景
切换Frame语法
- 不论HTML里是frame还是iframe,selenium中Frame语法都是相同的
- 切换Frame语法
driver.switch_to.frame(标识信息)
- 标识信息可以支持
- frame或iframe标记的id属性值(str类型)、name属性值(str类型)、或从0开始编号的索引号(int类型)
- frame或iframe标记的页面元素对象(webelement类型)
后台测试解决问题
- 分析网页源代码,查看目标元素是否属于frame或iframe内子网页里的元素
- 目标元素frame或iframe标记是否存在id或name属性
- 切换Frame
driver.switch_to.frame("menu-frame")
- 查找目标元素进行操作
driver.find_element(By.LINK_TEXT...)
切换回默认主网页
- 在点击左侧“商品回收站"之后,等待5秒,点击界面上方的“开店向导"
- 新问题:切换Frame失败,抛出NoSuchFrameException
- 分析:没有找到要切换的目标Frame,是由于之前切换到子网页里造成的。
- 解决方案:切换回默认主网页
driver.switch_to.default_content()
标签:网页,Frame,元素,切换,iframe,Selenium19,frame
From: https://www.cnblogs.com/sean-test/p/16986154.html