首页 > 其他分享 >软件测试|Selenium 自动化处理授权框、登录框和握手框

软件测试|Selenium 自动化处理授权框、登录框和握手框

时间:2023-11-08 10:35:10浏览次数:32  
标签:浏览器 登录 示例 Selenium 握手 driver 弹框 alert 软件测试

软件测试|Selenium 自动化处理授权框、登录框和握手框_用户名

简介

Selenium 是一个广泛用于自动化 web 浏览器操作的工具,可以用于模拟用户在浏览器中的交互。在自动化测试和网页数据抓取中,经常会遇到需要处理授权框、登录框和握手框的情况。在本文中,我们将详细介绍如何使用 Selenium 处理这些常见的弹出框,并提供示例代码。

弹框分类

在web自动化测试中,我们遇到的弹框通常分为3种,下面我们来介绍一下弹框的分类。

  1. JavaScript警告框,alert,confirm,prompt这三种弹框都是属于警告框,处理方法为driver.switch_to.alert().dismiss()或者driver.switch_to.alert().accept()
  2. DOM弹框,也叫div弹框,这种弹框本身就在html代码中,只是原来隐藏了,触发时会以对话框形式显示出来,处理方法为,按正常操作,触发显示(建议sleep(.5)),然后直接定位操作上面的元素即可。也可使用js跳过流程,直接使对话框显示,然后定位操作。
  3. 弹出小窗口,这种小窗口实际上是个网页窗口,无须处理(driver还在原页面),或使用switch_to.window()切换到新窗口,使用driver.close()关闭即可。
  4. Basic Auth授权弹框,这种弹框在加载页面前进行用户名密码验证后才能访问。处理这种弹框我们按照下面的方法:
协议://用户名:密码@服务域名或IP:端口号/接口地址?查询参数

操作示例

  1. 处理授权框

授权框通常出现在需要输入用户名和密码以访问受保护资源的情况下。以下是如何使用 Selenium 处理授权框的示例:

from selenium import webdriver

# 启动浏览器
driver = webdriver.Chrome()

# 打开一个需要授权的网页
url = "https://example.com/protected"
driver.get(url)

# 处理授权框
alert = driver.switch_to.alert
alert.authenticate("username", "password")

# 继续执行其他操作
# ...

# 关闭浏览器
driver.quit()

在上述示例中,我们首先启动了 Chrome 浏览器,并打开一个需要授权的网页。然后,我们使用 driver.switch_to.alert 来获取授权框对象,再使用 authenticate 方法提供用户名和密码来处理授权框。

  1. 处理登录框

登录框通常出现在需要用户输入凭据才能登录的情况下。以下是如何使用 Selenium 处理登录框的示例:

from selenium import webdriver

# 启动浏览器
driver = webdriver.Chrome()

# 打开一个需要登录的网页
url = "https://example.com/login"
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 方法找到用户名和密码输入框,并填写相应的信息。最后,我们找到登录按钮并模拟点击以提交登录表单。

  1. 处理握手框

握手框通常出现在需要确认一个安全连接的情况下,例如在访问 HTTPS 网站时。以下是如何使用 Selenium 处理握手框的示例:

from selenium import webdriver

# 启动浏览器
driver = webdriver.Chrome()

# 打开一个需要握手的网页
url = "https://example.com/secure"
driver.get(url)

# 处理握手框
alert = driver.switch_to.alert
alert.accept()

# 继续执行其他操作
# ...

# 关闭浏览器
driver.quit()

在上述示例中,我们首先启动 Chrome 浏览器,并打开一个需要握手的网页。然后,我们使用 driver.switch_to.alert 来获取握手框对象,再使用 accept 方法来确认握手框。

总结

使用 Selenium,可以轻松地处理授权框、登录框和握手框,使自动化测试和数据抓取更加高效。上述示例提供了如何处理这些常见弹出框的方法,但需要根据具体网站的 HTML 结构和弹出框的特性来进行调整。

标签:浏览器,登录,示例,Selenium,握手,driver,弹框,alert,软件测试
From: https://blog.51cto.com/u_15640304/8245816

相关文章

  • 软件测试|Selenium Expected Conditions 模块使用
    简介在自动化测试中,页面元素可能需要一些时间才能加载或完成某种操作,为了确保测试的稳定性,我们需要等待特定条件变为真。Selenium提供了一个ExpectedConditions模块,用于智能等待页面元素的出现、可见、可点击等条件。本文将详细介绍如何使用Selenium的ExpectedConditions......
  • 常见面试题-TCP三次握手四次挥手
    TCP三次握手/四次挥手参数用途SYN用于启动和建立连接时,同步设备之间的序列号。0到2^32-1的随机数。ACK向另一端确认已经收到SYN,数值为收到SYN增一。SYN-ACK确认之前收到了SYN,数值为自定义值。FIN终止连接。RST重置连接。三次握手三次握手流程为:第一次握手:client请求建立连......
  • 搜索文档树、bs4其他用法、css选择器、selenium基本使用、selenium其他用法
    搜索文档树#1find_all:找所有列表#2find找一个Tag类的对象find和find_allfrombs4importBeautifulSouphtml_doc="""<html><head><title>TheDormouse'sstory</title></head><body><pclass="title&......
  • 软件测试需求分析是什么?为什么需要进行测试需求分析?
    在软件开发中,软件测试是确保软件质量的重要环节之一。而软件测试需求分析作为软件测试的前置工作,对于保证软件测试的顺利进行具有重要意义。软件测试需求分析是指对软件测试的需求进行细致的分析和规划,以明确测试的目标、任务和范围,为后续的测试工作提供指导和支持。一、软......
  • selenium输入框中输入内容再自动点击回车
    fromseleniumimportwebdriverbrowser=webdriver.Chrome()browser.get('https://www.google.com')#定位输入框input_box=browser.find_element("id",'APjFqb')#输入关键词:seleniuminput_box.send_keys('美容......
  • selenium等待元素加载,元素操作,执行js,切换选项卡,前进后退,异常处理,登录cnblogs,抽
    1selenium等待元素加载......
  • 搜索文档树,bs4其它用法,css选择器,selenium基本使用,selenium其它用法
    1搜索文档树......
  • 软件测试|time模块的用法,你都掌握了吗?
    前言在Python编程中,时间是一个关键的概念,涉及到计时、延时、日期时间操作等。Python的time模块提供了处理时间相关操作的函数和方法。本文将详细介绍time模块的各种功能和用法,帮助您更好地理解和应用时间操作。时间戳(Timestamp):时间戳是指从1970年1月1日(称为“UNIX纪元”或“Epoch时......
  • 软件测试|深入探究Python中的计数函数count()的使用
    前言在Python中,列表(List)是一种常见的数据结构,用于存储一系列元素。count()是列表对象的一个内置方法,用于计算列表中某个特定元素出现的次数。本文将详细介绍count()函数的用法,以及如何在实际编程中灵活运用它。基本用法:count()函数的基本语法如下:count=list.count(value)其中,list......
  • 软件测试|如何使用ChatGPT生成思维导图
    前言思维导图是一种用图形方式呈现信息、概念和关系的工具,旨在帮助人们更清晰地组织、理解和记忆复杂的信息。它通常以树状结构展示,将主题、子主题、关键词等通过线条和连接箭头相连,从而呈现出不同元素之间的层次关系和联系。思维导图有助于将复杂的想法拆分为更小的部分,使之更易于......