Web自动化 - 切换(iframe、窗口、浏览器原生对话框)

WebDriverWait

WebDriverWait(driver,timeout,poll_frequency=0.5,ignored_exceptions=None)
driver:浏览器驱动
timeout:最长超时时间,默认以秒为单位
poll_frequency:检测的间隔步长,默认为0.5s
ignored_exceptions:超时后的抛出的异常信息,默认抛出NoSuchElementExeception异常。

iframe切换

# 切换ifram第一种

'''
控制台elements输入//iframe,鼠标点击该元素查看其在第几个iframe
driver.switch_to.frame('frame_name')
driver.switch_to.frame(1)
driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0])
切换完毕,尽量睡1秒
'''
driver.switch_to.frame(1)

# 切换ifram第二种,传参和第一种保持一致

EC.frame_to_be_available_and_switch_to_it(1)
# 从iframe内切到上一层
driver.switch_to.parent_frame()
# 从iframe内切换默认顶层,default:默认,content:内容
driver.switch_to.default_content()

窗口切换

# 切换窗口第一种
# 获取新窗口的句柄列表,新打开的一定位于最后一位
handles = driver.window_handles
# 切换至最新的窗口
driver.switch_to.window(handles[-1])

# 切换窗口第二种,在新窗口打开之前获取所有窗口的句柄
# 该方法是用新窗口之前的列表长度与打开后对比,如果有差异则表示有新的窗口打开
WebDriverWait(driver,10).until(EC.new_window_is_opened(handles))
# 重新获取窗口句柄列表
handles = driver.window_handles
# 切换至最新的窗口
driver.switch_to.window(handles[-1])

浏览器原生对话框

# 浏览器原生对话框切换,第一行为判断弹窗是否出现
WebDriverWait(driver,10).until(EC.alert_is_present())
alert = driver.switch_to.alert()
# 点击确认按钮
alert.accept()
# 点击取消按钮
alert.dismiss()

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Web自动化测试中切换iframe(内嵌框架)时,您可以使用Selenium提供的`switch_to.frame()`方法。以下是一个示例代码: ```python from selenium import webdriver # 启动浏览器 driver = webdriver.Chrome() try: # 打开网页 driver.get("https://example.com") # 切换iframe iframe = driver.find_element_by_css_selector("iframe[name='iframe_name']") driver.switch_to.frame(iframe) # 在iframe中执行操作 # ... # 切换回主页面 driver.switch_to.default_content() # 在主页面执行其他操作 # ... finally: # 关闭浏览器 driver.quit() ``` 在这个示例代码中,我们首先启动了Chrome浏览器。 然后,使用`driver.get()`方法打开了一个网页(示例中的URL为https://example.com)。 接下来,使用`driver.find_element_by_css_selector()`方法找到要切换iframe元素。在示例中,我们使用了CSS选择器来定位iframe,您可以根据实际情况使用其他定位方式。 然后,使用`driver.switch_to.frame()`方法切换到该iframe。我们将找到的iframe元素作为参数传递给`switch_to.frame()`方法。 在切换iframe后,您可以在其中执行需要的操作。 完成在iframe中的操作后,使用`driver.switch_to.default_content()`方法切换回主页面。 最后,在`finally`块中,我们使用`driver.quit()`关闭浏览器。 请注意,示例中使用的是Chrome浏览器和CSS选择器,您可以根据实际情况使用其他浏览器和定位方式。您还可以根据具体需求进行操作的扩展和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秦朝胖子得加钱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值