web自动化处理frame以及弹窗

本文介绍了Web自动化中如何处理frame和弹窗。针对frame,讲述了多窗口处理、frame的定义及其在HTML中的类型,以及如何切换和操作不同frame。在弹窗处理部分,讲解了alert的常见方法,如accept、dismiss和send_keys,并提供了相关示例。最后提到了文件上传的相关内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

本文为在霍格沃兹测试开发学社的学习经历分享,希望有志同道合的小伙伴可以一起交流技术,一起进步~

frame

1. 多窗口处理
  • 点击某些链接时,会跳转到另一个窗口,这时候想要在新也买你上操作,就要切换窗口。
  • 获取窗口的唯一标识用句柄表示,所以只需要切换句柄,就可以在多个页面灵活操作了

处理步骤:

  • 获取到当前的窗口句柄:(driver.current_window_handle)
  • 获取到所有的窗口句柄:(driver.window_handles)
  • 判断是否是想要操作的窗口,如果是,就可以直接对窗口进行操作,如果不是,可以用(driver.switch_to_window)方法切换到另一个窗口
2. frame是html的一个框架,框架就是可以在同一个浏览器中显示不止一个界面。
  • 在web自动化中,如果一个元素定位不到,很有可能是在iframe中
  • frame标签包括frameset,frame,iframe三种
  • frameset和普通标签一样,不影响正常定位
  • 而frame和iframe对selenium定位而言是一样的,selenium对frame的操作如下:
3. 多frame切换

frame存在两种,一种是嵌套的,一种是未嵌套的

  • 切换frame

    • driver.switch_to.frame() 根据元素id或者index切换frame
    • driver.switch_to.default_content() 切换到默认frame
    • driver.switch_to.parent_frame() 切换到父级frame
  • 未嵌套frame

    • driver.switch_to.frame(“frame的id”)
    • driver.switch_to.frame(“frame - index”) frame无ID的时候依据索引来处理,索引从0开始。例如:driver.switch_to.frame(0)
  • 嵌套frame

    • 对于嵌套的先进入iframe的父节点,再进到子节点,然后可以对子节点里的对象进行操作
4. 案例:

在这里插入图片描述

class TestFrame(Base):
    def test_frame(self):
        self
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值