成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

selenium中BasicAuth認(rèn)證彈框處理

89542767 / 758人閱讀

 小編寫這篇文章的主要目的,是給大家做一個介紹,介紹關(guān)于在python selenium中,如果出現(xiàn)了BasicAuth認(rèn)證彈框,那么,我們后續(xù)應(yīng)該要怎么進場處理呢?下面就給大家詳細(xì)解答下。

 

  一、什么是BasicAuth

 

  兩個不認(rèn)識的見面:

 

  假如說張三和李四見面了,于是張三向李四發(fā)出了誠摯的邀請:李四,國慶來上海玩吧,我請你吃小龍蝦!本來李四想先視頻一下到時候好認(rèn)人,但張三說那樣就沒有驚喜感了。于是兩人就采取了最原始的認(rèn)證方式:對暗號。

 

  沒錯,這種方式就是HTTP基本認(rèn)證。

 

  映射到互聯(lián)網(wǎng)為:

 

  1、客戶端:服務(wù)器,請把logo.jpg圖片返回給我

 

   GET/logo.jpg HTTP/1.1

 

  2、服務(wù)器:客戶端你好,這個資源在安全區(qū)Authorization里,是受限資源,需要基本認(rèn)證,請帶上你的用戶名和密碼再來

 

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

01.png 

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

 

  我們可以看到在

  www-Authenticate

 

  這個Header里面有兩個值,

 

  Basic:說明需要基本認(rèn)證,

 

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

 

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

02.png

  Basic內(nèi)容為:用戶名:密碼的base64形式。

 

  例如我的用戶名為Shusheng007,密碼為ss007。那么我的Basic的內(nèi)容為Shusheng007:ss007對應(yīng)的base64編碼內(nèi)容U2h1c2hlbmcwMDcldUZGMUFzczAwNw==,如下所示

 

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

04.png

  4、服務(wù)器:客戶端你好,我已經(jīng)校驗了你的用戶名和密碼,是正確的,這是你要的資源。

 

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

 

  至此這個HTTP事務(wù)就結(jié)束了,非常簡單的一個認(rèn)證機制。

 

  二、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()

 

  問題依舊~

 

  接下來思考,當(dāng)前這個彈框出現(xiàn)后是不能夠元素定位的,確定不是HTML,是瀏覽器的彈框。

 

  接下來就想入非非了,Keys?pyautogui?最后想到HTTP協(xié)議是可以攜帶賬號和密碼的,但是通常不會這么做。

 

  格式為: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()

 

  的確跳過授權(quán)框,進入到網(wǎng)頁登錄頁面。

06.png


  到此為止,這篇文章,小編就為大家介紹到這里了了,希望可以給各位讀者帶來幫助。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/127991.html

相關(guān)文章

  • python-eve 認(rèn)證和授權(quán)

    摘要:要使用驗證,需要通過一些外部技術(shù)例如,向客戶發(fā)送包含用戶和秘密密鑰的電子郵件向客戶端提供用戶和密鑰??蛻舳藢⑹褂锰峁┑拿荑€來簽署所有請求。 驗證類型 全局驗證 要實現(xiàn)安全認(rèn)證,只需要在Eve實例化的時候傳入驗證類即可,這樣就創(chuàng)建了一個全局的驗證類 from eve.auth import BasicAuth class MybasicAuth(BasicAuth): ...

    edagarli 評論0 收藏0
  • 使用Node在服務(wù)端調(diào)用HTTP-Basic認(rèn)證的API

    摘要:即便是使用為主作為服務(wù)端開發(fā)在項目中也會經(jīng)常用到要去其他的系統(tǒng)調(diào)用服務(wù)的場景。對于服務(wù)端調(diào)用的場景加上這個基本認(rèn)證也會比在前端直接使用這種比較空的更加合適。本文將介紹使用在服務(wù)端調(diào)用時面對最基本的認(rèn)證認(rèn)證的處理方式。 前言 Node作為前后端分離的利器由于它使用JS語法的特殊性,可以使得前端更好的利用Node來作為中間層十分方便得調(diào)用后臺提供的黑盒API。即便是使用Node為主作為服務(wù)...

    lwx12525 評論0 收藏0
  • Python3+selenium3的web端UI測試:控制窗口大小、彈窗、多窗口切換處理方法(3)

    摘要:自己犯下的低級錯誤后面不可加括號,因為是屬性,不是方法方法才用調(diào)用。 1、測試的時候一般調(diào)用的瀏覽器窗口都不是全屏的,為了不影響體驗我們需要將窗口最大化 解決的方案: showImg(https://segmentfault.com/img/bV7p2M?w=448&h=270); 按照自己的意愿設(shè)置窗口大小(注意:其中數(shù)字大小為像素點) showImg(https://segment...

    aisuhua 評論0 收藏0
  • Pyramid內(nèi)建基礎(chǔ)認(rèn)證

    摘要:原文地址在中實際上是提供了基礎(chǔ)認(rèn)證的我們可以通過如下的方式進行導(dǎo)入而在中將安全系統(tǒng)拆分為認(rèn)證和權(quán)限。這里我們來看下最簡單的基礎(chǔ)認(rèn)證。如果是自定義認(rèn)證類我們是可以在失敗的時候返回的對于系統(tǒng)內(nèi)建的基礎(chǔ)認(rèn)證類我們在回調(diào)時只能返回。 原文地址: http://52sox.com/pyramid-basi... 在Pyramid中實際上是提供了基礎(chǔ)認(rèn)證的,我們可以通過如下的方式進行導(dǎo)入: fro...

    LeanCloud 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<