
作者:星安果
來源: AirPython
1. python自動化:Helium 是什么?
Helium 是一款 Web 端自動化開源框架,全稱是:Selenium-Python-Helium,從名字上就可以看出,Helium 似乎和 Selenium 息息相關
確實,Helium 針對 Selenium 進行了封裝,它屏蔽了 Selenium 很多實現細節,提供了更加簡潔直觀的 API,更方便我們進行 Web 端的自動化
官方表示,要實現同樣的功能,Helium 相比 Selenium 要少 30% - 50% 的代碼
目前,Helium 僅支持 Chrome 和 FireFox
2.優缺點
Helium 主要包含下面 6 個優點:
Helium 主要缺點,體現在:
3.準備一下
切換到對應的虛擬環境下,通過 pip 命令安裝依賴即可
# 安裝依賴 pip3 install helium
接著,我們在 IDE 中,使用 helium.__all__ 打印出它包含的屬性及方法
我們發現,Helium 包含的操作動作、控件對象、鍵盤操作關鍵字基本覆蓋了大部分的自動化操作場景
4.Selenium VS Helium
是騾子是馬,拉出來溜溜 ~
接下來,我們以登錄 126 郵箱為例,來比較 Selenium 和 Helium
1、傳統 Selenium 實現
首先,我們需要下載并配置 WebDriver,然后實例化 WebDriver 對象,打開郵箱登錄的主頁面
from selenium import webdriver # 實例化Driver driver = webdriver.Chrome() # 隱式等待10s driver.implicitly_wait(10) # 打開主頁面 driver.get(home_url)
通過觀察網頁元素,發現輸入框區域被包裹在 iframe 內嵌頁面中
所以,我們需要使用 switch_to.frame() 函數切換到對應的 iframe,才能操作 iframe 內部的元素
from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait # 顯示等待打開主頁面 wait = WebDriverWait(driver, 10, 0.5) # 切換到對應的iframe,否則無法操作內部元素 wait.until( EC.frame_to_be_available_and_switch_to_it(driver.find_element_by_xpath('//iframe[contains(@id,"x-URS-iframe")]')))
接著,使用 Selenium API( 這里以 Xpath 為例 )查找用戶名和密碼輸入框、登錄按鈕;輸入用戶名和密碼,模擬登錄操作
# 用戶名輸入框 element_input = wait.until(EC.visibility_of(driver.find_element_by_xpath('//input[@name="email"]'))) element_input.clear() element_input.send_keys(username) # 密碼輸入框 element_password = wait.until(EC.visibility_of(driver.find_element_by_xpath('//input[@name="password"]'))) element_password.clear() element_password.send_keys(password) # 登錄按鈕 wait.until(EC.element_to_be_clickable((By.XPATH, '//a[@id="dologin"]'))).click()
最后,通過某個頁面元素是否出現來判斷是否登錄成功
# 找一個登錄成功的頁面元素 # 通過元素屬性+元素值來唯一定位元素 result = True try: element_recy_email = wait.until(EC.element_to_be_clickable((By.XPATH, '//span[@class="oz0" and contains(text(),"收 信")]'))) if element_recy_email: result = True else: result = False except Exception as e: result = False print("郵箱登陸成功" if result else "郵箱登錄失敗")
2、Helium 實現
接下來,我們通過 Helium 的方式來實現這一操作
首先,我們只需要 2 行代碼即可以打開主頁
from helium import * # 打開主頁 driver = start_chrome(home_url) # 等待元素加載完成 wait_until(Text("你的專業電子郵局").exists)
然后,通過內置 TextField 控件對象及預設文本內容,使用 write 動作輸入用戶名和密碼
# 不需要切換iframe,直接輸入 write(username,TextField('郵箱帳號或手機號碼')) write(password,TextField('輸入密碼'))
值得一提的是,Helium 不需要切換 iframe,可以直接操作內嵌頁面元素,簡直不要太方便!接著,模擬點擊鍵盤上的 Enter,完成登錄操作
# 模擬點擊Enter鍵登錄 press(ENTER)
通過 Helium 內置的 wait_until 方法 + 控件對象,可以顯式等待元素出現,默認最長時間為 10s
比如,這里等待登錄完成的主頁面加載完成,收件箱可以點擊,執行一次點擊操作
wait_until(Text('收 信').exists) # 點擊收件箱 click(Text('收 信'))
最后,調用 kill_browser() 方法關閉瀏覽器,結束自動化操作
# 退出 sleep(10) # 關閉瀏覽器 kill_browser()
需要指出的是,Helium 使用 start_chrome() 方法返回的對象實際上就是 WebDriver 對象,可以結合 Selenium API 一起使用
通過上面的對比發現,Helium 相比 Selenium 使用似乎更方便,但是它不適用于一些復雜的頁面
因此,在實際自動化項目中,建議搭配 Selenium 和 Helium 使用,簡單的頁面使用 Helium,復雜的頁面切換到 Selenium
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25