Selenium+python 通過 Cookie 和 Token 登入詳解 [無基礎新手必看系列]
功能描述:通過Cookie或Token登入
用 處:自動化時跳過驗證碼
適用環境:Windows
通過Cookie登入示例開始
options = webdriver.ChromeOptions()
options.binary_location = r"D:\Program Files\Google\Chrome\Application\chrome.exe"
driver = webdriver.Chrome(options=options)
driver.implicitly_wait(30)
driver.get("http://172.16.4.117:18909/main")
driver.maximize_window()
driver.delete_all_cookies()
driver.add_cookie({'name': 'OPERATE_WEB_SID', 'value': '00946d84-4ebc-49d5-8d66-24b8a3766a08'})
driver.add_cookie({'name': 'rememberMe',
'value': 'LFs5N3OlWkkD0n0Hdz+G8IGBlCHrSg9+uY70VybINunL3dhtZ6bGALmu/h179BXNdOivfrCOW2ncrQad5Fbz+RaF+ZyZlR32YpmhyjmsltgeT5XGcEU5GY4Ul9+JkqIfeRUgUpgr4H0RyaIy05YdSvkHeuzij5zzduUPhUM3JJ2y4zOYvp8rbU2UEgyrP/+/alJUqD+cVyOds+G20biP+6rq5c9021qCDzbeKpxNR0rv5Rx4uou1Q3MgJfebqZ1c/hZ5+nMwE6rEza/PREEKwNqzttGmneJuhCTcljddz+HK+VUX24n+Cy7t7PwGBC14Y0MBd7MYc1Fnehbd2wklkfN67z5a//Mlbnu25kf3w1zLeuk/TR2HCVc4o2lSZV3l37YzBOvOaKx/wPK25Z4edIGmJyXqF9mrgLOkL7O8NmYY9PP8jzp9elSke/SsAZ2kZZxFJgtmqlzpyC7L6+OUIzZ5a1FeYMSOfD/g1PyfpBt9giM5mE2aClOiETbJV05aqbN4cFUGDiL7Ben30QOaA6JTMqSuL0sSHv5/xi/WEZl5efb7D4xd2f2XV/lnvGekXc4hblsv8JSOWK0SZDK6UkbXpO0uvDIAntPcljlUic6jXHXI/swwTwJ31Eyj0Gd6Q9t7txAkZfZ3AEFw5KNPouxbXvSudpto/tvenVU3FSHkUVKHhlMeYF5b0Rdhoxl9E4FS4hWl64w0EtTgShTFdGZ0B/mQLE6lPqKbvPdDPuY8t+wgWxV9WAua5ixhEq+5xVH36jadUMqMbXqLNlM6YHCBik+4gJd+75paLJB2eQpMiMYmtzmaMgNCEqlXWVhw/3Mxl8v6iNK8RbN47PyFV8mOBZ/rz/uv2OBK4gvS8aMlTL3dsU7CFf4ohcwI/9c78z2IFIThX6Tv01flIcfkjJozCJM6hz83bMMM3gjqMW0jnqcc3m55u1gHBxqyRf2wqFOLOF7GU4nYIaak7rYh9iPh60z89aPxE8mz8S8PN/q4lPfe/sgP+arICnML9djuYc0r3Am0PdwRsnlKgQw/B4RUBmklumSVhTEkyb1U3INqcgvp7rr/eoN8LTvS3nXFiWFAuLDcHg4UsIFG/eXwi+7SkHhKJPwU44A23IYxU75shrnbhNxvv5Zg8iIP9P2dcegv6ELFYcrBtowkGFMW80VeJxppOh/RR1Jvfr7jG80sR38LfFZK1dAAUYI8/CQz3IaAI1gjnxVR9yWG5so96lkAeLBqU2kWJWKZKV3xbS11siP0RyL8+EDzCGQyRA8BnId7Z7Bl8SwBH7C0pViuxkznwUGSYmAG/NL/cwQV1K3G7IsD9kpyPb+sgbd7NJbKoxgmg0CPXRYTcjxBxrA1REs1ULyb0AbS54jVVFFf1y9Xopo6u6QDUE/AypWrE9339wTMsFj3XOikJ8IXFD8yqA=='})
driver.get("http://172.16.4.117:18909/main")
通過Cookie登入示例結束
webdriver 操作 Cookie 的方法介紹:
1:get_cookies() 獲得所有 cookie 資訊
2:get_cookie(name) 返回特定 name 有 cookie 資訊
3:add_cookie(cookie_dict) 新增 cookie,必須有 name 和 value 值
4:delete_cookie(name) 刪除特定(部分)的 cookie 資訊
5:delete_all_cookies() 刪除所有 cookie 資訊
如何獲取手動Cookie介紹
使用Chrome瀏覽器用無痕模式開啟,手動輸入URL、手動輸入賬號、密碼、驗證碼點選登入成功登入後。按下F12進入除錯介面如下圖。
然後把對應的name、value通過add_cookie方法新增到瀏覽器,最後重新driver.get一次URL即可。
網上也有說最後直接使用driver.refresh()重新整理一下頁面就可以了,但是我這邊使用重新整理方法進不去,因為目標網址是http://172.16.4.117:18909/main。
但是沒有登入狀態網址直接進入到了http://172.16.4.117:18909/login頁面,如果進入到了登入首頁不管你怎麼重新整理都無法登入的,所以木有辦法只能重新請求一次目標地址!
通過token登入示例開始
browser = webdriver.Chrome()
browser.implicitly_wait(15)
browser.get("你自己的URL地址我這邊就不方便貼測試地址了,就是那個https://********這個東西")
js = 'window.localStorage.setItem("business_sys_token","36f5a344e43045dda2334e8103b05ee7")'
browser.execute_script(js)
new_Tab = 'window.open("你自己的URL地址我這邊就不方便貼測試地址了,就是那個https://********這個東西")'
browser.execute_script(new_Tab)
browser.maximize_window()
handles = browser.window_handles #列印當前所有控制程式碼通俗的就是視窗
browser.switch_to.window(handles[0]) #切換到第一個視窗
browser.close() #關閉第一個視窗
browser.switch_to.window(handles[1]) #切換到第二個視窗
通過token登入示例結束
如何獲取手動Token介紹
使用Chrome瀏覽器用無痕模式開啟,手動輸入URL、手動輸入賬號、密碼、驗證碼點選登入成功登入後。按下F12進入除錯介面如下圖。
然後把Token值使用window.localStorage.setItem存入到瀏覽器中。使用Token登入時用到了window_handles,因為我存入Token後重新使用browser.get登入系統時發現登入不了,我也不知道為什麼登入不了,因為我是新手呀。然後我就使用windows.open重新開啟了一個視窗在新視窗去登入,這個時候就出現了二個視窗,為了美觀我就需要把第一個視窗關閉掉所以就用到了多視窗的切換和關閉視窗。
相關文章
- Laravel 通過 cookie 實現基於 session 的單點登入LaravelCookieSession
- jwt生成token和token解析基礎JWT
- Java零基礎之異常(新手必看)Java
- Jmeter新手入門必看JMeter
- 新手入門AMF協議基礎全解協議
- Mac新手必看基礎篇,mac快捷鍵大集合Mac
- 基於Token認證的多點登入和WebApi保護WebAPI
- 新手必看!最簡單的MySQL資料庫詳解MySql資料庫
- cookie和session的詳解CookieSession
- python+selenium 通過新增cookies或token解決網頁上驗證碼登入問題PythonCookie網頁
- jmeter通過cookies來登入JMeterCookie
- Cookie Session跨站無法共享問題(單點登入解決方案)CookieSession
- Python小白必看!新手入門指南Python
- Oracle 11g通過wallet實現無密碼登入Oracle密碼
- Django基礎六之cookie和sessionDjangoCookieSession
- 前端基礎:Session 和 Cookie 差別前端SessionCookie
- 實現基於JWT的Token登入驗證功能JWT
- Cookie詳解Cookie
- AE新手基礎入門教程50套從新手到高手
- 理解 cookie、session、tokenCookieSession
- 新手必看的iShowU Instant入門教程
- Java基礎:throw和throws的詳解Java
- # RESTful登入(基於token鑑權)的設計例項REST
- 前後端分離使用 Token 登入解決方案後端
- 詳解cookie、session和HTTP快取CookieSessionHTTP快取
- cookie 和session 的區別詳解CookieSession
- Cookie和Session的區別詳解CookieSession
- 通過jquery.cookie.js實現記住使用者名稱、密碼登入功能jQueryCookieJS密碼
- MongoDB入門系列(一):基礎概念和安裝MongoDB
- Flutter學習總結系列----Flutter基礎全面詳解Flutter
- js基礎必看系列-->2024-10-30總結JS
- 通過CiscoSDM登入思科路由器路由器
- CAS單點登入-基礎搭建
- Oracle表空間操作詳解-入門基礎Oracle
- SSH免密登入詳解
- Docker基礎和常用命令詳解。Docker
- python+pytest介面自動化(9)-cookie繞過登入(保持登入狀態)PythonCookie
- Cookie & Session詳解CookieSession