selenium中BasicAuth认证弹框处理

 更新时间:2022年7月11日 14:43  点击:274 作者:软件测试呀

一、什么是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认证弹框内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!

原文出处:https://blog.csdn.net/weixin_57794111/article/details/125695

[!--infotagslink--]

相关文章

  • selenium 反爬虫之跳过淘宝滑块验证功能的实现代码

    这篇文章主要介绍了selenium 反爬虫之跳过淘宝滑块验证功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-08-27
  • Python爬虫之Selenium实现关闭浏览器

    这篇文章主要介绍了Python爬虫之Selenium实现关闭浏览器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-04
  • c# Selenium爬取数据时防止webdriver封爬虫的方法

    这篇文章主要介绍了c# Selenium爬取数据时防止webdriver封爬虫的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-15
  • 手机未实名认证被停机了怎么办?中国移动/联通/电信手机号实名认证方法

    ,“手机实名制”就是每一个手机号码对应一个身份证,对应唯一真实的主人。如果不认证可能会陆续遭到停机,这该怎么办呢?手机怎么认证呢?下面就详情来看看移动联通电信手机号实名认证方式吧...2016-11-01
  • python自动化测试selenium执行js脚本实现示例

    这篇文章主要为大家介绍了python自动化测试selenium执行js脚本的实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步...2021-11-13
  • asp.net core MVC之实现基于token的认证

    这篇文章主要介绍了asp.net core MVC之实现基于token的认证,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-07
  • 关于C#.net winform程序验证moss的集成身份认证实例

    因为网站使用的是windows集成认证,所以遇到了权限问题,需要输入密码。使操作和用户体验非常不方便,研究了好久没有找到好的方法,最后终于让我踏破铁鞋总结出了下面的方法...2020-06-25
  • Python Selenium操作Cookie的实例方法

    在本篇文章里小编给大家整理的是一篇关于Python Selenium操作Cookie的实例方法,有需要的朋友们可以学习参考下。...2021-02-28
  • ASP.NET Core使用JWT认证授权的方法

    这篇文章主要介绍了ASP.NET Core使用JWT认证授权的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-09-22
  • python编程使用selenium编写测试用例

    这篇文章主要为大家介绍了在python编程学习中如何使用selenium来编写测试用例,文中给出了详细的测试用例代码,有需要的朋友可以借鉴参考下...2021-10-09
  • 详解Python 使用 selenium 进行自动化测试或者协助日常工作

    这篇文章主要介绍了Python 使用 selenium 进行自动化测试 或者协助日常工作,我们可以使用 selenium 来帮助我们进行自动化的 Web 测试,也可以通过 selenium 操作浏览器做一些重复的,简单的事情,来减轻我们的工作...2021-09-30
  • Nginx上配置Basic Authorization登录认服务证的教程

    现在我们所使用的包括社交网络API等开放平台授权获得用户的用户名和密码一般有两种认证方式,一种是Basic Auth,一种是OAuth,这里我们就来看一下Nginx上配置Basic Authorization登录认服务证的教程...2016-08-27
  • C#使用Selenium的实现代码

    这篇文章主要介绍了C#使用Selenium的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • Python selenium 自动化脚本打包成一个exe文件(推荐)

    这篇文章主要介绍了Python selenium 自动化脚本打包成一个exe文件,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-04-27
  • ASP.NET Core学习之使用JWT认证授权详解

    这篇文章主要给大家介绍了关于ASP.NET Core学习之使用JWT认证授权的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用ASP.NET Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2021-09-22
  • Python中Selenium对Cookie的操作方法

    Cookie内记录用户名和密码(加密)信息,只要请求时服务器收到Cookie,识别成功,默认为已登陆,今天通过本文给大家分享Selenium对Cookie的操作方法,感兴趣的朋友一起看看吧...2021-07-09
  • .net core webapi jwt 更为清爽的认证详解

    这篇文章主要介绍了.net core webapi jwt 更为清爽的认证详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2021-09-22
  • 教你怎么用python selenium实现自动化测试

    今天带大家学习怎么用python selenium实现自动化测试,文中有非常详细的介绍及代码示例,对正在学习python的小伙伴们很有帮助,需要的朋友可以参考下...2021-05-28
  • Apache如何增加.htaccess文件增加用户认证

    首先用htpasswd创建一个密码文件:比如文件名叫做my.passwd /home/apache/bin/htpasswd -c -b my.passwd myusername mypassword 如果增加帐号: /home/apache/bin/htpasswd...2016-01-28
  • Springboot shiro认证授权实现原理及实例

    这篇文章主要介绍了Springboot shiro认证授权实现原理及实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-11