?概要
是否還在為網(wǎng)頁測試而煩惱?是否還在為重復(fù)的點(diǎn)擊、等待而勞累?試試強(qiáng)大的
Selenium
!讓你的網(wǎng)頁自動(dòng)化測試變得輕松有趣!
?
一、Selenium庫到底是什么?
Selenium 是一個(gè)強(qiáng)大的自動(dòng)化測試工具,它可以讓你直接操控瀏覽器,完成各種與網(wǎng)頁交互的任務(wù)。通過使用 Python 的 Selenium 庫,你可以高效地實(shí)現(xiàn)網(wǎng)頁自動(dòng)化測試,從而節(jié)省大量時(shí)間和精力。
1.1 Selenium庫的主要功能
-
自動(dòng)化測試:可以實(shí)現(xiàn)對(duì)網(wǎng)站的自動(dòng)化功能測試,比如點(diǎn)擊按鈕、輸入文本、選擇下拉菜單等。
-
網(wǎng)頁爬蟲:對(duì)于一些需要登錄或者有反爬機(jī)制的網(wǎng)站,使用 Selenium 可以輕松應(yīng)對(duì)。
-
自動(dòng)化任務(wù):如定時(shí)訪問網(wǎng)站、自動(dòng)提交表單等。
1.2 Selenium庫的優(yōu)勢(shì)
-
支持多種編程語言:Python、Java、C#、Ruby 等。
-
支持多種瀏覽器:Chrome、Firefox、Edge、Safari 等。
-
跨平臺(tái):Windows、macOS、Linux。
-
社區(qū)活躍,持續(xù)更新維護(hù)。
二、Selenium庫的安裝與配置
2.1 安裝Selenium庫
在安裝 Selenium 庫之前,請(qǐng)確保已經(jīng)安裝了 Python。接下來,只需打開終端或命令提示符,輸入以下命令即可安裝 Selenium 庫:
pip?install?selenium
2.2 配置瀏覽器驅(qū)動(dòng)
要使用 Selenium 控制瀏覽器,你還需要安裝對(duì)應(yīng)瀏覽器的驅(qū)動(dòng)。這里以 Chrome 瀏覽器為例,其他瀏覽器驅(qū)動(dòng)的安裝方法類似。
-
下載 Chrome 驅(qū)動(dòng):搜 ChromeDriver 在下載頁面選擇與你的 Chrome 瀏覽器版本匹配的驅(qū)動(dòng)。
-
解壓下載的壓縮包,將解壓后的?
chromedriver
?文件放置在一個(gè)可執(zhí)行路徑下,如?/usr/local/bin
(macOS、Linux)或?C:\Windows
(Windows)。
三、使用Selenium庫進(jìn)行基本操作
3.1 啟動(dòng)瀏覽器
導(dǎo)入 Selenium 的?webdriver
?模塊,然后實(shí)例化一個(gè) Chrome 驅(qū)動(dòng)對(duì)象,就可以啟動(dòng) Chrome 瀏覽器了:
from?selenium?import?webdriver
driver?=?webdriver.Chrome()
3.2 打開網(wǎng)頁
使用?get
?方法,傳入目標(biāo)網(wǎng)址,即可讓瀏覽器打開該網(wǎng)址:
driver.get("https://www.baidu.com")
3.3 定位頁面元素
Selenium 提供了多種定位頁面元素的方法,如?find_element_by_id
、find_element_by_name
、find_element_by_class_name
?等。這里以百度搜索框?yàn)槔?,使?find_element_by_id
?方法定位:
search_box?=?driver.find_element_by_id("kw")
3.4 操作頁面元素
找到頁面元素后,你可以對(duì)其進(jìn)行各種操作,如輸入文本、點(diǎn)擊按鈕等。這里以輸入搜索關(guān)鍵詞為例:
search_box.send_keys("Selenium")
3.5 提交表單
在搜索框輸入關(guān)鍵詞后,還需要點(diǎn)擊“百度一下”按鈕來提交表單。這里用?find_element_by_id
?方法定位按鈕,然后用?click
?方法進(jìn)行點(diǎn)擊:
search_button?=?driver.find_element_by_id("su")
search_button.click()
3.6 等待頁面加載
在進(jìn)行自動(dòng)化測試時(shí),很多時(shí)候需要等待頁面加載。Selenium 提供了兩種等待方法:顯式等待和隱式等待。
3.6.1 顯式等待
顯式等待會(huì)在指定時(shí)間內(nèi),不斷嘗試查找目標(biāo)元素,直到找到為止。這里以等待搜索結(jié)果出現(xiàn)為例:
from?selenium.webdriver.common.by?import?By
from?selenium.webdriver.support.ui?import?WebDriverWait
from?selenium.webdriver.support?import?expected_conditions?as?EC
try:
????element?=?WebDriverWait(driver,?10).until(
????????EC.presence_of_element_located((By.ID,?"content_left"))
????)
except?TimeoutException:
????print("等待超時(shí)!")
3.6.2 隱式等待
隱式等待會(huì)在查找元素時(shí),等待指定時(shí)間后再拋出異常。這里以等待搜索結(jié)果出現(xiàn)為例:
driver.implicitly_wait(10)
content_left?=?driver.find_element_by_id("content_left")
3.7 獲取頁面信息
獲取頁面的標(biāo)題、URL、源代碼等信息:
title?=?driver.title
url?=?driver.current_url
source?=?driver.page_source
print("標(biāo)題:",?title)
print("URL:",?url)
3.8 關(guān)閉瀏覽器
完成所有操作后,別忘了關(guān)閉瀏覽器:
driver.quit()
四、Selenium庫的高級(jí)應(yīng)用
4.1 切換窗口
在進(jìn)行自動(dòng)化測試時(shí),有時(shí)需要切換到新打開的窗口。這里以點(diǎn)擊百度首頁底部的 “關(guān)于百度” 鏈接為例,演示如何切換窗口:
from?selenium.webdriver.common.keys?import?Keys
about_link?=?driver.find_element_by_link_text("關(guān)于百度")
about_link.send_keys(Keys.CONTROL?+?Keys.RETURN)
driver.switch_to.window(driver.window_handles[-1])
4.2 切換 Frame
有些網(wǎng)頁會(huì)使用 Frame 嵌套頁面,這時(shí)需要切換到對(duì)應(yīng)的 Frame 才能操作其中的元素。切換 Frame 可以用?switch_to.frame
?方法:
driver.switch_to.frame("frame_name")
切換回主頁面可以用?switch_to.default_content
?方法:
driver.switch_to.default_content()
4.3 執(zhí)行 JavaScript 代碼
有時(shí)候,你可能需要執(zhí)行一些 JavaScript 代碼來實(shí)現(xiàn)特定功能,比如滾動(dòng)頁面、修改元素屬性等。這里以滾動(dòng)頁面為例:
driver.execute_script("window.scrollTo(0,?document.body.scrollHeight);")
五、技術(shù)總結(jié)
通過本文的介紹,相信你已經(jīng)掌握了 Selenium 庫的基本知識(shí),包括自動(dòng)化測試、瀏覽器驅(qū)動(dòng)、頁面交互等?,F(xiàn)在,你可以用 Python + Selenium 輕松搞定網(wǎng)頁自動(dòng)化測試?yán)玻?/p>
?文章來源地址http://www.zghlxwxcb.cn/news/detail-685296.html
?文章來源:http://www.zghlxwxcb.cn/news/detail-685296.html
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
到了這里,關(guān)于Python爬蟲框架之Selenium庫入門:用Python實(shí)現(xiàn)網(wǎng)頁自動(dòng)化測試詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!