selenium中BasicAuth认证弹框处理

目录
  • 一、什么是BasicAuth
  • 二、selenium处理思路

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

(0)

相关推荐

  • python2.7+selenium2实现淘宝滑块自动认证功能

    本文为大家分享了python2.7+selenium2实现淘宝滑块自动认证的具体代码,供大家参考,具体内容如下 1.编译环境 操作系统:win7:语言:python2.7+selenium2:ide:pycharm:浏览器:IE10,chrome 2.1意外开始 今天登录淘宝时候发现吧密码搞忘了,选择找回密码时淘宝居然加了滑块认证. 恰巧自己也在学习selenium,就想试一试能不能实现自动拖动滑块. 2.2 度娘查找 由于自己没多少思路,第一选择就是问度娘,终于找到一篇文章,该文章使用C#实现

  • selenium中BasicAuth认证弹框处理

    目录 一.什么是BasicAuth 二.selenium处理思路 一.什么是BasicAuth 网友见面: 例如王二狗和牛翠花两个人在网上都互动半年了还没有见面,于是二狗向翠花发出了诚挚的邀请:翠花,五一来天津玩吧,我请你吃麻辣烫!本来二狗想先视频一下到时候好认人,但翠花说那样就没有惊喜感了.于是两人就采取了最原始的认证方式:对暗号,到时候翠花喊:天王盖地虎.二狗就喊:翠花好漂亮. 没错,这种方式就是HTTP基本认证. 映射到互联网为: 1.客户端:服务器,请把logo.jpg图片返回给我 GE

  • vue项目中仿element-ui弹框效果的实例代码

    最近要写个弹框,发现element-ui弹框样式还可以,就copy下来改吧改吧.也不分步骤详细介绍了直接上代码. 在组件目录中新建文件夹message 我把message目录里的东西给大家贴出来 message文件夹 src文件夹 index.js import Message from './src/main.js'; export default Message; mian.js import Vue from 'vue'; import Main from './main.vue'; le

  • vue项目中使用vue-layer弹框插件的方法

    vue-layer弹框插件 安装 npm i --save vue-layer 引用 import layer from 'vue-layer' Vue.prototype.$layer = layer(Vue); 参数说明 { type: 0, //0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层) title: '信息', content: '', area: 'auto', offset: 'auto', icon: -1, btn: '确定', time: 0

  • vue.js中toast用法及使用toast弹框的实例代码

    1.首先引入 import { Toast } from 'vant' 写个小列子 绑定一个click事件 2.写事件 在methods写方法 showToast() { this.$toast({ message: "今日签到+3", }) }, 3.效果图如下 一个简单的toast提示成就好了 下面通过实例代码看下vue 中使用 Toast弹框 import { ToastPlugin,ConfirmPlugin,AlertPlugin} from 'vux' Vue.use(To

  • Angular中sweetalert弹框的基本使用教程

    前言 最近太忙了,项目中使用的弹框老板嫌太丑,让我们优化一下,我在网上找了一下,找到了sweetalert弹框,算是比较好看的弹框了.所以我就想办法将sweetalert用到项目中,在项目中引入sweetalert时,遇到诸多问题,但最终在我不懈坚持下,都解决了,实现了效果.具体用法请看下文.写的有问题的地方欢迎留言,我会及时更改. 一.下载文件 npm install angular-sweetalert npm install sweetalert 当npm 下载angular-sweeta

  • vue多种弹框的弹出形式的示例代码

    1.父组件引入子组件,子组件的加载问题 products.vue引入dlAddProd弹框(dlAddProd.vue),由于<div v-show="visible">,所以在products页面加载时,dlAddProd会被加载.但是el-dialog中的body部分不会被加载(不管有没有加v-if指令):dlAddProd弹框中又引入了dlBlankAdd弹框和dlEditProd弹框,但此时只有dlBlankAdd会被加载,dlEditProd不会被加载(<d

  • 微信小程序 modal弹框组件详解

    微信小程序  modal: 这里对微信小程序中 modal组件进行详细解析,我想开发微信小程序的小伙伴可以用到,这里小编就记录下modal的知识要点. modal modal类似于javascript中的confirm弹框,默认情况下是一个带有确认取消的弹框,不过点击取消后弹框不会自动隐藏,需要通过触发事件调用函数来控制hidden属性. 官方文档 .wxml <modal hidden="{{hidden}}" title="这里是title" confir

  • Vue项目结合Vue-layer实现弹框式编辑功能(实例代码)

    1. 实现效果 2.实现原理 在父组件中点击编辑按钮,将当前点击对象的id传给子组件,子组件根据id修改相应的内容 父组件中代码: //放置编辑按钮的位置 <button type="button" class="layui-btn layui-btn-normal layui-btn-sm" v-on:click="edit(manage.id)"><i class="layui-icon"><

  • 微信小程序  modal弹框组件详解

    微信小程序  modal: 这里对微信小程序中 modal组件进行详细解析,我想开发微信小程序的小伙伴可以用到,这里小编就记录下modal的知识要点. modal modal类似于javascript中的confirm弹框,默认情况下是一个带有确认取消的弹框,不过点击取消后弹框不会自动隐藏,需要通过触发事件调用函数来控制hidden属性. 官方文档 .wxml <modal hidden="{{hidden}}" title="这里是title" confir

  • python自动化测试selenium核心技术处理弹框

    页面上的弹框一般有三种: (1)alert:用来提示 (2)confirm:用来确认 (2)prompt:输入内容 示例网站:http://sahitest.com/demo 示例场景:打开Sahi Tests页面, (1)点击"Alert Test"页面,鼠标点击页面中"Click For Alert"按钮,弹出警告提示框,判断页面是否存在alert,如存在则切换到警告框,并获取警告文本信息,之后点警告框中的确定按钮. (2)点击"Confirm Pag

随机推荐