Python使用selenium進行浏覽器賬戶測試
文章目錄
- Python使用selenium進行浏覽器賬戶測試
- 一、簡介
- 二、使用requests進行初步測試
- 三、使用selenium進行自動化測試
- 四、效果展示
- 五、總結
一、簡介
這裡,我們将使用Python的selenium子產品對某個網站的賬戶進行自動化測試。
https://djs0pkeif39feujmxds.appdjujengbjnsdbbsdbsb20.com/register

二、使用requests進行初步測試
首先使用Python的requests子產品進行初步的檢測。
import requests
url = "https://djs0pkeif39feujmxds.appdjujengbjnsdbbsdbsb20.com/register"
res = requests.get(url)
print(res.content.decode())
三、使用selenium進行自動化測試
在使用Python的selenium子產品進行自動化測試的同時,也對滑塊進行了自動的驗證測試。
import time
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
import random
url = "https://djs0pkeif39feujmxds.appdjujengbjnsdbbsdbsb20.com/register"
num_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
while True:
str000 = ''
for i in range(8):
str000 += str(random.sample(num_list, 1)[0])
driver= webdriver.Chrome()
driver.get(url=url)
time.sleep(3)
driver.find_elements(by=By.CLASS_NAME, value='van-field__control')[0].send_keys(str000)
time.sleep(0.2)
driver.find_elements(by=By.CLASS_NAME, value='van-field__control')[1].send_keys('yxhu' + str000 + 'flgz')
time.sleep(0.2)
driver.find_elements(by=By.CLASS_NAME, value='van-field__control')[2].send_keys('flgz' + str000 + 'yxhu')
time.sleep(0.2)
driver.find_element(by=By.XPATH, value='//*[@id="app"]/div[1]/div/div/div/div[2]/button').click()
time.sleep(1.4)
try:
driver.find_element(by=By.XPATH, value='/html/body/div[3]/div[2]/button[2]').click()
except Exception as e:
print(e)
else:
print('success')
finally:
print('finally')
time.sleep(1)
slider = driver.find_element(by=By.XPATH, value='//*[@id="nc_2_n1z"]')
# 解決特征識别的代碼
script = 'Object.defineProperty(navigator, "webdriver", {get: () => false,});'
driver.execute_script(script)
# 滑塊解鎖
action = ActionChains(driver)
action.click_and_hold(slider) # 按住
action.move_by_offset(954, 0) # 往右偏移248個像素
action.release() # 釋放滑鼠
action.perform() # 執行
time.sleep(10)
try:
domwords = driver.find_element(by=By.XPATH, value='/html/body/div[3]/div[1]')
except Exception as e:
print(e)
else:
print(domwords.text)
if domwords.text == "邀請碼錯誤或者已過期":
driver.quit()
continue
driver.find_element(by=By.XPATH, value='/html/body/div[3]/div[2]/button[2]').click()
time.sleep(10)
driver.find_element(by=By.XPATH, value='//*[@id="app"]/div[1]/div/div/div/div[6]/div[1]/div[3]/button[1]').click()
time.sleep(10)
driver.quit()
四、效果展示
請參見哔哩哔哩視訊:
https://www.bilibili.com/video/BV1P44y1P7mc?spm_id_from=333.999.0.0
五、總結
在進行測試的時候,主要是使用了路徑的鎖定以及滑塊的處理,經過這次實踐,我對于selenium的了解更深一層了,學些到了不少東西,值得記錄一下。
while True:
str000 = ''
for i in range(8):
str000 += str(random.sample(num_list, 1)[0])
driver= webdriver.Chrome()
driver.get(url=url)
time.sleep(3)
driver.find_elements(by=By.CLASS_NAME, value='van-field__control')[0].send_keys(str000)
time.sleep(0.2)
driver.find_elements(by=By.CLASS_NAME, value='van-field__control')[1].send_keys('yxhu' + str000 + 'flgz')
time.sleep(0.2)
driver.find_elements(by=By.CLASS_NAME, value='van-field__control')[2].send_keys('flgz' + str000 + 'yxhu')
time.sleep(0.2)
driver.find_element(by=By.XPATH, value='//*[@id="app"]/div[1]/div/div/div/div[2]/button').click()
time.sleep(1.4)
try:
driver.find_element(by=By.XPATH, value='/html/body/div[3]/div[2]/button[2]').click()
except Exception as e:
print(e)
else:
print('success')
finally:
print('finally')
time.sleep(1)
slider = driver.find_element(by=By.XPATH, value='//*[@id="nc_2_n1z"]')
# 解決特征識别的代碼
script = 'Object.defineProperty(navigator, "webdriver", {get: () => false,});'
driver.execute_script(script)
# 滑塊解鎖
action = ActionChains(driver)
action.click_and_hold(slider) # 按住
action.move_by_offset(954, 0) # 往右偏移248個像素
action.release() # 釋放滑鼠
action.perform() # 執行
time.sleep(10)
try:
domwords = driver.find_element(by=By.XPATH, value='/html/body/div[3]/div[1]')
except Exception as e:
print(e)
else:
print(domwords.text)
if domwords.text == "邀請碼錯誤或者已過期":
driver.quit()
continue
driver.find_element(by=By.XPATH, value='/html/body/div[3]/div[2]/button[2]').click()
time.sleep(10)
driver.find_element(by=By.XPATH, value='//*[@id="app"]/div[1]/div/div/div/div[6]/div[1]/div[3]/button[1]').click()
time.sleep(10)
driver.quit()