前言:
现在你们对“selenium处理web弹出框窗口”大体比较注意,你们都想要知道一些“selenium处理web弹出框窗口”的相关资讯。那么小编在网摘上网罗了一些有关“selenium处理web弹出框窗口””的相关知识,希望大家能喜欢,我们一起来学习一下吧!简介
Selenium 是一个广泛用于自动化 web 浏览器操作的工具,可以用于模拟用户在浏览器中的交互。在自动化测试和网页数据抓取中,经常会遇到需要处理授权框、登录框和握手框的情况。在本文中,我们将详细介绍如何使用 Selenium 处理这些常见的弹出框,并提供示例代码。
弹框分类
在web自动化测试中,我们遇到的弹框通常分为3种,下面我们来介绍一下弹框的分类。
JavaScript警告框,alert,confirm,prompt这三种弹框都是属于警告框,处理方法为driver.switch_to.alert().dismiss()或者driver.switch_to.alert().accept()DOM弹框,也叫div弹框,这种弹框本身就在html代码中,只是原来隐藏了,触发时会以对话框形式显示出来,处理方法为,按正常操作,触发显示(建议sleep(.5)),然后直接定位操作上面的元素即可。也可使用js跳过流程,直接使对话框显示,然后定位操作。弹出小窗口,这种小窗口实际上是个网页窗口,无须处理(driver还在原页面),或使用switch_to.window()切换到新窗口,使用driver.close()关闭即可。Basic Auth授权弹框,这种弹框在加载页面前进行用户名密码验证后才能访问。处理这种弹框我们按照下面的方法:
协议://用户名:密码@服务域名或IP:端口号/接口地址?查询参数操作示例处理授权框
授权框通常出现在需要输入用户名和密码以访问受保护资源的情况下。以下是如何使用 Selenium 处理授权框的示例:
pythonfrom selenium import webdriver# 启动浏览器driver = webdriver.Chrome()# 打开一个需要授权的网页url = ";driver.get(url)# 处理授权框alert = driver.switch_to.alertalert.authenticate("username", "password")# 继续执行其他操作# ...# 关闭浏览器driver.quit()
在上述示例中,我们首先启动了 Chrome 浏览器,并打开一个需要授权的网页。然后,我们使用 driver.switch_to.alert 来获取授权框对象,再使用 authenticate 方法提供用户名和密码来处理授权框。
处理登录框
登录框通常出现在需要用户输入凭据才能登录的情况下。以下是如何使用 Selenium 处理登录框的示例:
pythonfrom selenium import webdriver# 启动浏览器driver = webdriver.Chrome()# 打开一个需要登录的网页url = ";driver.get(url)# 找到用户名和密码输入框并填写信息username_input = driver.find_element_by_id("username")password_input = driver.find_element_by_id("password")username_input.send_keys("your_username")password_input.send_keys("your_password")# 提交登录表单login_button = driver.find_element_by_id("login-button")login_button.click()# 继续执行其他操作# ...# 关闭浏览器driver.quit()
在上述示例中,我们首先启动 Chrome 浏览器,并打开需要登录的网页。然后,使用 find_element_by_id 方法找到用户名和密码输入框,并填写相应的信息。最后,我们找到登录按钮并模拟点击以提交登录表单。
处理握手框
握手框通常出现在需要确认一个安全连接的情况下,例如在访问 HTTPS 网站时。以下是如何使用 Selenium 处理握手框的示例:
pythonfrom selenium import webdriver# 启动浏览器driver = webdriver.Chrome()# 打开一个需要握手的网页url = ";driver.get(url)# 处理握手框alert = driver.switch_to.alertalert.accept()# 继续执行其他操作# ...# 关闭浏览器driver.quit()
在上述示例中,我们首先启动 Chrome 浏览器,并打开一个需要握手的网页。然后,我们使用 driver.switch_to.alert 来获取握手框对象,再使用 accept 方法来确认握手框。
总结
使用 Selenium,可以轻松地处理授权框、登录框和握手框,使自动化测试和数据抓取更加高效。上述示例提供了如何处理这些常见弹出框的方法,但需要根据具体网站的 HTML 结构和弹出框的特性来进行调整。
霍格沃兹测试开发学社|免费学习资料大放送,助你事半功倍! - 公众号 - 测试人社区