記錄-selenium簡單實現自動點擊操作


最近測試規則,網頁上每條測試只能手動點測試,想寫個腳本實現自動點擊,網上收集資料可以用selenium實現,模擬人操作。

import selenium
from selenium import webdriver
from selenium.webdriver.common.by import By
現收集如下材料:
使用selenium模擬打開谷歌瀏覽器:

1、要下載瀏覽器版本對應的ChromeDriver驅動包:下載網址
2、打開谷歌瀏覽器
# 找打剛才安裝的chromedriver.exe的位置
browser = webdriver.Chrome(executable_path =r'D:\chromedriver.exe')
此時電腦就會新打開谷歌瀏覽器,並顯示受到自動測試軟件控制

 

 


3、打開某個網址:
browser.get('https://www.baidu.com/')
ps:也可以在此瀏覽器中自行操作打開網址,找到想要操作的頁面,此時停留的頁面,就是程序里可以操作的頁面。

4、元素定位
參考:史上最全!Selenium元素定位的30種方式

5、常用事件
點擊:參考Selenium實現點擊click()

6、程序延遲執行
import time
time.sleep(360) # 延遲執行360秒
 
7、動態更改谷歌瀏覽器默認下載路徑
整理的時候找不到是哪個大神寫的了,當時用了他的代碼下面貼出來:

def set_download_path(driver, path):
"""
禁止下載彈窗,設置下載路徑
"""
# path = path.rstrip(os.sep)
driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')
params = {'cmd': 'Page.setDownloadBehavior',
'params': {'behavior': 'allow', 'downloadPath': path}}
driver.execute("send_command", params)
if not os.path.exists(path):
os.makedirs(path)
 
--------------------------------------------------------分割------------------------------------------------------------------------------------------

 

 

 

第一需求是在這樣一個頁面中,等待上一條測試完成后,自動點擊下一條‘開始測試’(測試完成的及進行中的就不會在出現‘開始測試’字樣)
初級實現功能代碼:
由於短時間沒找打怎么監控進度到100%的方法,通過一個簡單方法:每條測試大概需要5分鍾左右,就設定每隔6分鍾點擊一次,也基本滿足需求。
import selenium
from selenium import webdriver
from selenium.webdriver.common.by import By

import time
 
# 打開谷歌瀏覽器,
browser = webdriver.Chrome(executable_path =r'D:\chromedriver.exe')
 
# 手動找到需要操作的頁面
for j in range(5): # 需要點擊5頁
f= browser.find_elements_by_link_text('開始測試') # 找到當前頁所有的開始測試元素
for i in range(len(f)): # 循環每隔6分鍾點擊一個
f[i].click()
time.sleep(360)
browser.find_elements_by_class_name('ant-pagination-item-link')[2].click() # 這一頁的開始測試都點完后,點擊下一頁
time.sleep(4)
 
改進版,發現有進度的時候會有class:ant-progress-text,text會顯示進度百分之多少,測試成功后就會變成其他,所以通過判斷當時是否有ant-progress-text來判斷當前是否測試完畢,並可以開始下一條測試。
for j in range(5):
f= browser.find_elements_by_link_text('開始測試')
for i in range(len(f)):
f[i].click()
time.sleep(5)
while True:
try:
browser.find_element_by_class_name('ant-progress-text').text # 如果沒有ant-progress-text,會報錯
time.sleep(30)
except :
break
browser.find_elements_by_class_name('ant-pagination-item-link')[3].click()
time.sleep(4)
 
第二個需求是對於測試完畢的需要下載測試結果,點擊‘下載測試結果’會下載一個csv文件,下面實現自動下載,且每個文件保存在新文件中,文件夾以測試名稱命名。
r = browser.find_elements_by_link_text('下載測試結果') # 找下載測試結果
a = browser.find_elements_by_xpath("//tbody//tr") # 找每條測試的名稱
for i in range(9):
file_name = a[i].text.split(' ')[2]
path = r'C:\Users\99452\Desktop\下載結果\{}'.format(file_name)
set_download_path(browser,path) # 用到上述第7點更改默認文件夾的函數
time.sleep(10)
r[i].click()
time.sleep(20)
————————————————
版權聲明:本文為CSDN博主「胡桃夾子zy」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/hutao_ljj/article/details/112059679


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM