selenium中BasicAuth认证弹框处理

 更新时间:2022年07月11日 11:50:07   作者:软件测试呀  
本文主要介绍了selenium中BasicAuth认证弹框处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、什么是BasicAuth

网友见面:

例如王二狗和牛翠花两个人在网上都互动半年了还没有见面,于是二狗向翠花发出了诚挚的邀请:翠花,五一来天津玩吧,我请你吃麻辣烫!本来二狗想先视频一下到时候好认人,但翠花说那样就没有惊喜感了。于是两人就采取了最原始的认证方式:对暗号,到时候翠花喊:天王盖地虎。二狗就喊:翠花好漂亮。

没错,这种方式就是HTTP基本认证。

映射到互联网为:

1、客户端:服务器,请把logo.jpg图片返回给我

GET /logo.jpg HTTP/1.1

2、服务器:客户端你好,这个资源在安全区Authorization里,是受限资源,需要基本认证,请带上你的用户名和密码再来

HTTP/1.1 401 Authorization Required
www-Authenticate: Basic realm= "Authorization" 

在这里插入图片描述

服务器会返回401,告知客户端这个资源需要使用基本认证的方式访问。

我们可以看到在

www-Authenticate

这个Header里面 有两个值,

Basic:说明需要基本认证,

realm:说明客户端需要输入这个安全区的用户名和密码,而不是其他区的。

3、客户端:服务器,我已经按照你的要求,携带了相应的用户名和密码信息了,你看一下。 如果客户端是浏览器,那么此时就会弹出一个弹窗,让用户输入用户名和密码。

在这里插入图片描述

Basic 内容为: 用户名:密码 的base64形式 。

例如我的用户名为Shusheng007,密码为ss007。那么我的Basic的内容为 Shusheng007:ss007 对应的base64 编码内容U2h1c2hlbmcwMDcldUZGMUFzczAwNw==,如下所示

GET /logo.jpg  HTTP/1.1 
Authorization: Basic U2h1c2hlbmcwMDcldUZGMUFzczAwNw==

在这里插入图片描述

4、服务器:客户端你好,我已经校验了你的用户名和密码,是正确的,这是你要的资源。

HTTP/1.1 200 OK Content-type: image/jpg ...

至此这个HTTP事务就结束了,非常简单的一个认证机制。

二、selenium处理思路

因为非常像弹出框,首先我们想到的思路是alert处理模块。

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("http://ip:port/admin.php/index/index")
driver.switch_to.alert.send_keys("hello")

input("...")
driver.quit()

但是代码会报错,提示找不到alert警告框

在这里插入图片描述

接下来考虑是不是UI自动化的诟病,要加延迟,安排!

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("http://ip:port/admin.php/index/index")
time.sleep(5)
driver.switch_to.alert.send_keys("hello")

input("...")
driver.quit()

问题依旧~

接下来思考,当前这个弹框出现后是不能够元素定位的,确定不是HTML,是浏览器的弹框。

接下来就想入非非了,Keys?pyautogui?最后想到HTTP协议是可以携带账号和密码的,但是通常不会这么做。

格式为:http://username:password@host:port/path/query parameter

代码试验如下:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("http://username:password@ip:port/admin.php")

input("...")
driver.quit()

的确跳过授权框,进入到网页登录页面。

在这里插入图片描述

到此这篇关于selenium中BasicAuth认证弹框处理的文章就介绍到这了,更多相关selenium BasicAuth认证弹框内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python变量教程之全局变量和局部变量

    Python变量教程之全局变量和局部变量

    这篇文章主要介绍了Python变量教程之全局变量和局部变量,文章围绕主题展开详细的晌午内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • python如何变换环境

    python如何变换环境

    在本篇内容里小编给各位分享的是一篇关于python如何变换环境的相关基础文章,有需要的朋友们可以参考下。
    2020-07-07
  • 500行Python代码打造刷脸考勤系统

    500行Python代码打造刷脸考勤系统

    本文给大家分享通过500行Python代码打造刷脸考勤系统,代码超级简单,感兴趣的朋友跟随小编一起看看吧
    2019-06-06
  • python用post访问restful服务接口的方法

    python用post访问restful服务接口的方法

    今天小编就为大家分享一篇python用post访问restful服务接口的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python之文字转图片方法

    Python之文字转图片方法

    今天小编就为大家分享一篇Python之文字转图片方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • python实现图片二值化及灰度处理方式

    python实现图片二值化及灰度处理方式

    今天小编就为大家分享一篇python实现图片二值化及灰度处理方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • python中常用排序操作sort方法和sorted函数的使用超详细讲解(内置模板代码!)

    python中常用排序操作sort方法和sorted函数的使用超详细讲解(内置模板代码!)

    这篇文章主要介绍了Python中的排序方法,包括sort()方法和sorted()函数的使用,sort()方法用于列表,对原列表进行排序,文章还提供了一些排序案例模板代码,以解决实际问题,需要的朋友可以参考下
    2025-02-02
  • python+selenium实现QQ邮箱自动发送功能

    python+selenium实现QQ邮箱自动发送功能

    这篇文章主要为大家详细介绍了python+selenium实现QQ邮箱自动发送功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • Python jieba库用法及实例解析

    Python jieba库用法及实例解析

    这篇文章主要介绍了Python jieba库用法及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • python 如何获取页面所有a标签下href的值

    python 如何获取页面所有a标签下href的值

    这篇文章主要介绍了python 获取页面所有a标签下href的值操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-05-05

最新评论