Python使用Selenium WebDriver的入門介紹及安裝教程(最新推薦)
Selenium WebDriver 入門
一、什么是Selenium WebDriver
WebDriver 以本地化方式驅(qū)動瀏覽器,就像用戶在本地或使用 Selenium 服務(wù)器的遠(yuǎn)程機(jī)器上所做的那樣,這標(biāo)志著瀏覽器自動化的飛躍。
Selenium WebDriver 指的是語言綁定和各個瀏覽器控制代碼的實(shí)現(xiàn)。 這通常被稱為 WebDriver。
Selenium WebDriver 是 W3C 推薦標(biāo)準(zhǔn)。
- WebDriver 被設(shè)計(jì)成一個簡單和簡潔的編程接口。
- WebDriver 是一個簡潔的面向?qū)ο?API。
- 它能有效地驅(qū)動瀏覽器。
本文絕大部分內(nèi)容,都可以從以下官方文檔中找到。
https://www.selenium.dev/zh-cn/documentation/webdriver/
二、安裝Selenium WebDriver
本文使用環(huán)境為python3.11 + win10 64位 + firefox瀏覽器,所以本文使用的瀏覽器驅(qū)動是Firefox的geckodriver ,如果你使用的是其他瀏覽器,那么選擇自己對應(yīng)的瀏覽器驅(qū)動程序即可。
2.1 安裝selenium類庫
最簡單的方式就是使用pip直接安裝
pip install selenium

2.2 安裝瀏覽器驅(qū)動
通過WebDriver, Selenium支持市場上所有主要瀏覽器, 如Chrome、Firefox、Internet Explorer、Edge和Safari. WebDriver盡量使用瀏覽器內(nèi)置的自動化支持 來驅(qū)動瀏覽器.
由于除Internet Explorer之外的所有驅(qū)動程序?qū)崿F(xiàn) 都是由瀏覽器供應(yīng)商自己提供的, 因此標(biāo)準(zhǔn)Selenium發(fā)行版中不包括這些驅(qū)動程序. 本節(jié)介紹了使用不同瀏覽器的基本要求.
打開以下網(wǎng)址https://www.selenium.dev/zh-cn/documentation/webdriver/getting_started/install_drivers/
找到瀏覽器驅(qū)動下載的鏈接,這里可以看到Selenium支持的多個瀏覽器驅(qū)動,你自己電腦上裝了什么瀏覽器,就下載對應(yīng)的驅(qū)動程序即可,本文使用的是firefox,所以選擇firefox的驅(qū)動。

點(diǎn)擊firefox驅(qū)動下載鏈接,進(jìn)入到github的releases頁面,可以看到各個版本的驅(qū)動程序,本文是win10 64位,選擇的是 geckodriver-v0.32.0-win-aarch64.zip ,根據(jù)自己的系統(tǒng)選擇對應(yīng)的文件即可。

解壓后是一個可執(zhí)行文件,如下所示:

2.3 配置環(huán)境變量
依次打開我的電腦->屬性->高級系統(tǒng)設(shè)置->環(huán)境變量,雙擊path,點(diǎn)擊新建,輸入驅(qū)動程序geckodriver.exe所在的目錄即可,然后一路點(diǎn)擊確定。



簡單驗(yàn)證一下,新打開一個控制臺,輸入驅(qū)動程序文件名,此處為geckodriver.exe,能夠正常打開即可

當(dāng)然了,還有個野路子,就是直接把該驅(qū)動程序放到你的Python目錄下Scripts文件夾中,執(zhí)行python腳本的時候也能夠直接打開即可。比如我的目錄是D:\Python\Python311\Scripts
三、編寫第一個Selenium腳本
當(dāng)你完成 Selenium安裝 and 驅(qū)動安裝 后, 便可以開始書寫Selenium腳本了。
Selenium所做的一切, 就是發(fā)送給瀏覽器命令, 用以執(zhí)行某些操作或?yàn)樾畔l(fā)送請求. 您將使用Selenium執(zhí)行的大部分操作, 都是以下基本命令的組合:
1.使用驅(qū)動實(shí)例開啟會話
driver = webdriver.Firefox()
2.在瀏覽器上執(zhí)行操作
在本例中, 我們 導(dǎo)航 到一個網(wǎng)頁.
driver.get("https://www.selenium.dev/selenium/web/web-form.html")3.請求瀏覽器信息
您可以請求一系列關(guān)于瀏覽器的信息 , 包括窗口句柄、瀏覽器尺寸/位置、cookie、警報(bào)等
title = driver.title
4.建立等待策略
將代碼與瀏覽器的當(dāng)前狀態(tài)同步 是Selenium面臨的最大挑戰(zhàn)之一, 做好它是一個高級主題.基本上, 您希望在嘗試定位元素之前, 確保該元素位于頁面上, 并且在嘗試與該元素交互之前, 該元素處于可交互狀態(tài)。隱式等待很少是最好的解決方案, 但在這里最容易演示
driver.implicitly_wait(0.5)
5.發(fā)送命令 查找元素
大多數(shù)Selenium會話中的主要命令都與元素相關(guān), 如果不先找到元素, 就無法與之交互
text_box = driver.find_element(by=By.NAME, value="my-text") submit_button = driver.find_element(by=By.CSS_SELECTOR, value="button")
6.操作元素
對于一個元素, 只有少數(shù)幾個操作可以執(zhí)行, 但您將經(jīng)常使用它們
text_box.send_keys("Selenium")
submit_button.click()7.獲取元素信息
value = message.text
8.結(jié)束會話
這將結(jié)束驅(qū)動程序進(jìn)程, 默認(rèn)情況下, 該進(jìn)程也會關(guān)閉瀏覽器. 無法向此驅(qū)動程序?qū)嵗l(fā)送更多命令
driver.quit()
讓我們將這8個部分組合成一個完整的腳本, 包括需要使用的庫
from selenium import webdriver
from selenium.webdriver.common.by import By
def test_eight_components():
driver = webdriver.Firefox()
driver.get("https://www.selenium.dev/selenium/web/web-form.html")
title = driver.title
assert title == "Web form"
driver.implicitly_wait(0.5)
text_box = driver.find_element(by=By.NAME, value="my-text")
submit_button = driver.find_element(by=By.CSS_SELECTOR, value="button")
text_box.send_keys("Selenium")
submit_button.click()
message = driver.find_element(by=By.ID, value="message")
value = message.text
assert value == "Received!"
driver.quit()以上只是selenium webdriver的入門知識,更高階的主題,將在后續(xù)其他文章中專門介紹。
到此這篇關(guān)于Python使用Selenium WebDriver的入門介紹及安裝教程的文章就介紹到這了,更多相關(guān)Python使用Selenium WebDriver內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python關(guān)于調(diào)用函數(shù)外的變量實(shí)例
今天小編就為大家分享一篇python關(guān)于調(diào)用函數(shù)外的變量實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
python使用matplotlib庫生成隨機(jī)漫步圖
這篇文章主要為大家詳細(xì)介紹了使用Python的matplotlib庫生成隨機(jī)漫步圖,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-08-08
如何實(shí)現(xiàn)在jupyter notebook中播放視頻(不停地展示圖片)
這篇文章主要介紹了如何實(shí)現(xiàn)在jupyter notebook中播放視頻(不停地展示圖片),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
淺談OpenCV中的新函數(shù)connectedComponentsWithStats用法
這篇文章主要介紹了淺談OpenCV中的新函數(shù)connectedComponentsWithStats用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07
python的數(shù)學(xué)算法函數(shù)及公式用法
在本篇內(nèi)容里小編給大家分享了一篇關(guān)于python的數(shù)學(xué)算法函數(shù)及公式用法,有興趣的朋友們可以參考下。2020-11-11
Win10下安裝CUDA11.0+CUDNN8.0+tensorflow-gpu2.4.1+pytorch1.7.0+p
這篇文章主要介紹了Win10下安裝CUDA11.0+CUDNN8.0+tensorflow-gpu2.4.1+pytorch1.7.0+paddlepaddle-gpu2.0.0,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03

