自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

聊聊Selenium自動(dòng)化登錄Idaas,你學(xué)會(huì)了嗎?

開發(fā) 前端
為了避免重復(fù)且浪費(fèi)時(shí)間的工作,我寫了一個(gè)python腳本,實(shí)現(xiàn)批量自動(dòng)登錄idaas并訪問后端網(wǎng)站。

說明:

后臺(tái)網(wǎng)站對(duì)接阿里云的idaas后,原來的用戶都需要導(dǎo)入到idaas中,好在idaas提供導(dǎo)入用戶的功能,但是后臺(tái)要對(duì)這些用戶授權(quán)前,這些用戶都必須登錄idaas且首次訪問后臺(tái)頁面。我們這邊大概需要操作150多個(gè)用戶,如果人工手動(dòng)操作登錄,怕是一兩個(gè)小時(shí)也完不成。

為了避免重復(fù)且浪費(fèi)時(shí)間的工作,我寫了一個(gè)python腳本,實(shí)現(xiàn)批量自動(dòng)登錄idaas并訪問后端網(wǎng)站。

操作步驟:

一、安裝chromedriver

1.查看chrome游覽器的版本

下載之前查看自己電腦chrome游覽器的版本 ,在設(shè)置中點(diǎn)擊關(guān)于Chrome即可查看,我這邊的版本是101.0.4951.41 。

查看谷歌瀏覽器版本

2.下載chromedriver

打開下載鏈接:http://chromedriver.storage.googleapis.com/index.html ,選擇和chrome游覽器相同或相近的版本,否則無法調(diào)用chrome游覽器。我這邊選擇的是與我瀏覽器最相近的101.0.4951.15版

查找相近版本

選擇與自己系統(tǒng)相符的安裝包進(jìn)行下載,我是windows系統(tǒng)下載chromedriver_win32.zip 。

選擇與系統(tǒng)相對(duì)應(yīng)的包

3.記住安裝路徑

下載下來的安裝包直接解壓即可,記住安裝路徑,我的路徑C:\Users\15418\Desktop\chromedriver.exe。

安裝路徑

二、單用戶登錄

1.打開/關(guān)閉谷歌瀏覽器

#coding=utf-8
#使用selenium庫中的webdriver工具
from selenium import webdriver
#打開瀏覽器,這里填寫chromedriver的路徑,才能打開瀏覽器
driver = webdriver.Chrome(executable_path=r"C:\Users\15418\Desktop\chromedriver.exe")
#關(guān)閉瀏覽器
driver.quit()

2.訪問sso頁面

#使用get的方式訪問sso頁面
driver.get("https://sso.xxx.com/")

idaas登錄界面

3.找到輸入框及登錄按鈕的前端代碼

訪問sso頁面后按F12,在Elements中找到賬戶名的輸入框。鼠標(biāo)移動(dòng)到輸入框那一行代碼,上面的輸入框就會(huì)出現(xiàn)藍(lán)色陰影提示。在用戶名輸入框代碼中,input類型即為輸入框,它的class名稱為"ivu-input ivu-input-default",這些信息會(huì)在輸入用戶名中用到。

用戶名

找到密碼輸入框的前端代碼,同樣input類型即為輸入框,他的類型type為password。做的這些操作都是為了讓代碼找到密碼輸入框在哪里,具有input類型,且type為password的就只有密碼輸入框,為后續(xù)自動(dòng)輸入密碼做準(zhǔn)備。

登錄

同理,找到提交按鈕的特性:button按鈕類型、class名稱為“ivu-btn ivu-btn-primary ivu-btn-long”。

密碼

4.單個(gè)用戶實(shí)現(xiàn)登錄

#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By
#打開瀏覽器
driver = webdriver.Chrome(executable_path=r"C:\Users\15418\Desktop\chromedriver.exe")
#訪問sso頁面
driver.get("https://sso.xxx.com/")
#隱式等待,等頁面元素穩(wěn)定后就定位
driver.implicitly_wait(30)
#找到用戶名輸入框并輸入用戶名
driver.find_element(By.CSS_SELECTOR, 'input[class="ivu-input ivu-input-default').send_keys("此處填用戶名")
#找到密碼輸入框并輸入密碼
driver.find_element(By.CSS_SELECTOR, 'input[type="password"').send_keys("此處填密碼")
#找到登錄按鈕并登錄
driver.find_element(By.CSS_SELECTOR, 'button[class="ivu-btn ivu-btn-primary ivu-btn-long"').click()
#關(guān)閉瀏覽器
driver.quit()

三、首次訪問應(yīng)用服務(wù)

登錄idaas后需要第一次訪問下應(yīng)用服務(wù),應(yīng)用服務(wù)才能收到是哪些用戶進(jìn)而對(duì)這些用戶授權(quán),所以需要在登錄的狀態(tài)下進(jìn)行訪問。

#找到應(yīng)用服務(wù)并點(diǎn)擊進(jìn)行訪問
driver.find_element(By.CSS_SELECTOR,'a[href="/api/xxx"').click()

訪問應(yīng)用服務(wù)

四、批量登錄并訪問應(yīng)用服務(wù)

上面講述的是單個(gè)用戶的登錄情況,現(xiàn)在我們需要批量登錄,先創(chuàng)建一個(gè)文件里面寫著用戶名用換行分割(如下圖所示),由于我們的初始密碼都是統(tǒng)一的,所以我直接在代碼中寫死了,一個(gè)用戶登錄訪問完成后緊接著下一個(gè)用戶登錄,直至最后一個(gè)用戶完成登錄訪問。

完整代碼:

#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By
with open(r'name.txt','r',encoding='utf8')as read_f:
for line in read_f:
username=line.strip("\n")
password="xxx"
driver = webdriver.Chrome(executable_path=r"C:\Users\15418\Desktop\chromedriver.exe")
driver.get("https://sso.xxx.com/")
driver.implicitly_wait(30)
driver.find_element(By.CSS_SELECTOR, 'input[class="ivu-input ivu-input-default').send_keys(username)
driver.find_element(By.CSS_SELECTOR, 'input[type="password"').send_keys(password)
driver.find_element(By.CSS_SELECTOR, 'button[class="ivu-btn ivu-btn-primary ivu-btn-long"').click()
driver.find_element(By.CSS_SELECTOR,'a[href="/api/xxx"').click()
driver.quit()

至此,使用selenium批量自動(dòng)登錄并訪問應(yīng)用服務(wù)完成。

責(zé)任編輯:武曉燕 來源: 新鈦云服
相關(guān)推薦

2022-12-08 10:49:43

2023-07-10 08:36:21

工具pptword

2023-01-29 08:08:34

并發(fā)庫conc通用庫

2024-06-12 08:36:25

2022-12-26 07:48:04

敏捷項(xiàng)目

2024-03-05 10:09:16

restfulHTTPAPI

2021-11-30 07:01:19

Python自動(dòng)化腳本

2024-11-08 08:56:01

2023-03-07 07:50:15

Transactio事務(wù)代碼

2022-04-13 09:01:45

SASSCSS處理器

2022-09-26 08:49:11

Java架構(gòu)CPU

2024-08-19 10:24:14

2022-07-11 09:00:37

依賴配置文件Mybati

2024-05-29 07:47:30

SpringJava@Resource

2023-06-05 08:36:04

SQL函數(shù)RANK()

2024-10-29 08:08:44

2022-03-05 23:29:18

LibuvwatchdogNode.js

2022-12-14 08:31:43

#error編譯命令

2023-02-15 08:41:56

多層維表性能寬表

2024-08-12 08:12:38

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)