首页 > 其他分享 >Selenium19-切换Frame

Selenium19-切换Frame

时间:2022-12-15 22:33:50浏览次数:31  
标签:网页 Frame 元素 切换 iframe Selenium19 frame

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

相关文章