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重新開啟了一個視窗在新視窗去登入,這個時候就出現了二個視窗,為了美觀我就需要把第一個視窗關閉掉所以就用到了多視窗的切換和關閉視窗。
相關文章
- jwt生成token和token解析基礎JWT
- Java零基礎之異常(新手必看)Java
- token 登入
- Jmeter新手入門必看JMeter
- Laravel 通過 cookie 實現基於 session 的單點登入LaravelCookieSession
- Mac新手必看基礎篇,mac快捷鍵大集合Mac
- 基於Token認證的多點登入和WebApi保護WebAPI
- 新手必看!最簡單的MySQL資料庫詳解MySql資料庫
- Python小白必看!新手入門指南Python
- 鴻蒙極速入門(四)-透過登入Demo瞭解ArkTS鴻蒙
- js基礎必看系列-->2024-10-30總結JS
- 前端基礎:Session 和 Cookie 差別前端SessionCookie
- Django基礎六之cookie和sessionDjangoCookieSession
- 新手必看的iShowU Instant入門教程
- python+pytest介面自動化(9)-cookie繞過登入(保持登入狀態)PythonCookie
- 實現基於JWT的Token登入驗證功能JWT
- Java基礎:throw和throws的詳解Java
- 理解 cookie、session、tokenCookieSession
- 【Python入門必看】Python中Cookie和Session的區別與聯絡!PythonCookieSession
- Flutter學習總結系列----Flutter基礎全面詳解Flutter
- 前後端分離使用 Token 登入解決方案後端
- cookie token 亂碼的坑 decodeURIComponent 解碼解決Cookie
- 滲透測試基礎知識---mysql配置檔案詳解MySql
- Cookie & Session詳解CookieSession
- cookie和session的詳解與區別CookieSession
- SSH免密登入詳解
- Docker基礎和常用命令詳解。Docker
- java基礎學習:JavaWeb之Cookie和SessionJavaWebCookieSession
- CAS單點登入-基礎搭建
- Semantic Kernel入門系列:透過依賴注入管理物件和外掛依賴注入物件
- 小白入門Python,必看的一些基礎材料Python
- 一篇文章弄懂cookie、session和tokenCookieSession
- Python和JavaScript哪個容易上手?0基礎必看!PythonJavaScript
- ASP.NET Core Authentication系列(四)基於Cookie實現多應用間單點登入(SSO)ASP.NETCookie
- IM開發基礎知識補課(四):正確理解HTTP短連線中的Cookie、Session和TokenHTTPCookieSession
- 【slam】解決ubuntu無法透過拼音輸入中文的問題SLAMUbuntu
- 【新手必看系列】小鳥雲伺服器該如何配置?伺服器
- Python程式設計入門基礎語法詳解Python程式設計