中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

selenium中BasicAuth認證彈框問題怎么處理

發布時間:2022-07-11 13:43:06 來源:億速云 閱讀:247 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“selenium中BasicAuth認證彈框問題怎么處理”,內容詳細,步驟清晰,細節處理妥當,希望這篇“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"

selenium中BasicAuth認證彈框問題怎么處理

服務器會返回401,告知客戶端這個資源需要使用基本認證的方式訪問。

我們可以看到在

www-Authenticate

這個Header里面 有兩個值,

Basic:說明需要基本認證,

realm:說明客戶端需要輸入這個安全區的用戶名和密碼,而不是其他區的。

3、客戶端:服務器,我已經按照你的要求,攜帶了相應的用戶名和密碼信息了,你看一下。 如果客戶端是瀏覽器,那么此時就會彈出一個彈窗,讓用戶輸入用戶名和密碼。

selenium中BasicAuth認證彈框問題怎么處理

Basic 內容為: 用戶名:密碼 的base64形式 。

例如我的用戶名為Shusheng007,密碼為ss007。那么我的Basic的內容為 Shusheng007:ss007 對應的base64 編碼內容U2h2c2hlbmcwMDcldUZGMUFzczAwNw==,如下所示

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

selenium中BasicAuth認證彈框問題怎么處理

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警告框

selenium中BasicAuth認證彈框問題怎么處理

接下來考慮是不是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認證彈框問題怎么處理”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

浙江省| 谷城县| 阿坝| 马边| 彰化市| 黔江区| 富裕县| 宝鸡市| 鹤峰县| 越西县| 虹口区| 礼泉县| 武清区| 武夷山市| 板桥市| 井陉县| 蕉岭县| 英吉沙县| 泰来县| 连云港市| 齐河县| 平远县| 梁山县| 微山县| 偏关县| 神池县| 汉阴县| 陆丰市| 获嘉县| 东城区| 潞西市| 惠州市| 临朐县| 图们市| 朝阳区| 荣昌县| 邮箱| 平顶山市| 涞水县| 乐安县| 攀枝花市|