欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python使用Selenium WebDriver的入門介紹及安裝教程(最新推薦)

 更新時(shí)間:2023年04月11日 11:35:48   作者:smart_cat  
這篇文章主要介紹了Python使用Selenium WebDriver的入門介紹及安裝教程,本文使用環(huán)境為python3.11+win10 64位+firefox瀏覽器,所以本文使用的瀏覽器驅(qū)動(dòng)是Firefox的geckodriver ,如果你使用的是其他瀏覽器,那么選擇自己對(duì)應(yīng)的瀏覽器驅(qū)動(dòng)程序即可,需要的朋友可以參考下

Selenium WebDriver 入門 

一、什么是Selenium WebDriver

WebDriver 以本地化方式驅(qū)動(dòng)瀏覽器,就像用戶在本地或使用 Selenium 服務(wù)器的遠(yuǎn)程機(jī)器上所做的那樣,這標(biāo)志著瀏覽器自動(dòng)化的飛躍。

Selenium WebDriver 指的是語(yǔ)言綁定和各個(gè)瀏覽器控制代碼的實(shí)現(xiàn)。 這通常被稱為 WebDriver。

Selenium WebDriver 是 W3C 推薦標(biāo)準(zhǔn)。

  • WebDriver 被設(shè)計(jì)成一個(gè)簡(jiǎn)單和簡(jiǎn)潔的編程接口。
  • WebDriver 是一個(gè)簡(jiǎn)潔的面向?qū)ο?API。
  • 它能有效地驅(qū)動(dòng)瀏覽器。

本文絕大部分內(nèi)容,都可以從以下官方文檔中找到。

https://www.selenium.dev/zh-cn/documentation/webdriver/

二、安裝Selenium WebDriver

本文使用環(huán)境為python3.11 + win10 64位 + firefox瀏覽器,所以本文使用的瀏覽器驅(qū)動(dòng)是Firefox的geckodriver ,如果你使用的是其他瀏覽器,那么選擇自己對(duì)應(yīng)的瀏覽器驅(qū)動(dòng)程序即可。

2.1 安裝selenium類庫(kù)

最簡(jiǎn)單的方式就是使用pip直接安裝

pip install selenium

20221212232704

2.2 安裝瀏覽器驅(qū)動(dòng)

通過(guò)WebDriver, Selenium支持市場(chǎng)上所有主要瀏覽器, 如Chrome、Firefox、Internet Explorer、Edge和Safari. WebDriver盡量使用瀏覽器內(nèi)置的自動(dòng)化支持 來(lái)驅(qū)動(dòng)瀏覽器.

由于除Internet Explorer之外的所有驅(qū)動(dòng)程序?qū)崿F(xiàn) 都是由瀏覽器供應(yīng)商自己提供的, 因此標(biāo)準(zhǔn)Selenium發(fā)行版中不包括這些驅(qū)動(dòng)程序. 本節(jié)介紹了使用不同瀏覽器的基本要求.

打開(kāi)以下網(wǎng)址https://www.selenium.dev/zh-cn/documentation/webdriver/getting_started/install_drivers/

找到瀏覽器驅(qū)動(dòng)下載的鏈接,這里可以看到Selenium支持的多個(gè)瀏覽器驅(qū)動(dòng),你自己電腦上裝了什么瀏覽器,就下載對(duì)應(yīng)的驅(qū)動(dòng)程序即可,本文使用的是firefox,所以選擇firefox的驅(qū)動(dòng)。

20221212233419

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

20221212233821

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

20221212233920

2.3 配置環(huán)境變量

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

20221212234328

20221212234438

20221212234651

簡(jiǎn)單驗(yàn)證一下,新打開(kāi)一個(gè)控制臺(tái),輸入驅(qū)動(dòng)程序文件名,此處為geckodriver.exe,能夠正常打開(kāi)即可

20221212234925

當(dāng)然了,還有個(gè)野路子,就是直接把該驅(qū)動(dòng)程序放到你的Python目錄下Scripts文件夾中,執(zhí)行python腳本的時(shí)候也能夠直接打開(kāi)即可。比如我的目錄是D:\Python\Python311\Scripts

三、編寫(xiě)第一個(gè)Selenium腳本

當(dāng)你完成 Selenium安裝 and 驅(qū)動(dòng)安裝 后, 便可以開(kāi)始書(shū)寫(xiě)Selenium腳本了。

Selenium所做的一切, 就是發(fā)送給瀏覽器命令, 用以執(zhí)行某些操作或?yàn)樾畔l(fā)送請(qǐng)求. 您將使用Selenium執(zhí)行的大部分操作, 都是以下基本命令的組合:

1.使用驅(qū)動(dòng)實(shí)例開(kāi)啟會(huì)話

 driver = webdriver.Firefox()

2.在瀏覽器上執(zhí)行操作
在本例中, 我們 導(dǎo)航 到一個(gè)網(wǎng)頁(yè).

 driver.get("https://www.selenium.dev/selenium/web/web-form.html")

3.請(qǐng)求瀏覽器信息
您可以請(qǐng)求一系列關(guān)于瀏覽器的信息 , 包括窗口句柄、瀏覽器尺寸/位置、cookie、警報(bào)等

 title = driver.title

4.建立等待策略
將代碼與瀏覽器的當(dāng)前狀態(tài)同步 是Selenium面臨的最大挑戰(zhàn)之一, 做好它是一個(gè)高級(jí)主題.基本上, 您希望在嘗試定位元素之前, 確保該元素位于頁(yè)面上, 并且在嘗試與該元素交互之前, 該元素處于可交互狀態(tài)。隱式等待很少是最好的解決方案, 但在這里最容易演示

 driver.implicitly_wait(0.5)

5.發(fā)送命令 查找元素
大多數(shù)Selenium會(huì)話中的主要命令都與元素相關(guān), 如果不先找到元素, 就無(wú)法與之交互

 text_box = driver.find_element(by=By.NAME, value="my-text")
 submit_button = driver.find_element(by=By.CSS_SELECTOR, value="button")

6.操作元素
對(duì)于一個(gè)元素, 只有少數(shù)幾個(gè)操作可以執(zhí)行, 但您將經(jīng)常使用它們

 text_box.send_keys("Selenium")
 submit_button.click()

7.獲取元素信息

 value = message.text

8.結(jié)束會(huì)話
這將結(jié)束驅(qū)動(dòng)程序進(jìn)程, 默認(rèn)情況下, 該進(jìn)程也會(huì)關(guān)閉瀏覽器. 無(wú)法向此驅(qū)動(dòng)程序?qū)嵗l(fā)送更多命令

 driver.quit()

讓我們將這8個(gè)部分組合成一個(gè)完整的腳本, 包括需要使用的庫(kù)

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的入門知識(shí),更高階的主題,將在后續(xù)其他文章中專門介紹。

到此這篇關(guān)于Python使用Selenium WebDriver的入門介紹及安裝教程的文章就介紹到這了,更多相關(guān)Python使用Selenium WebDriver內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 你真的了解Python的random模塊嗎?

    你真的了解Python的random模塊嗎?

    這篇文章主要介紹了Python的random模塊的相關(guān)內(nèi)容,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • python將依賴和源碼打包在一起的方法

    python將依賴和源碼打包在一起的方法

    Python?項(xiàng)目在不同環(huán)境中部署時(shí),經(jīng)常會(huì)遇到安裝依賴的問(wèn)題,為了避免多個(gè)環(huán)境引起的重復(fù)勞動(dòng),可以將依賴和源碼打包在一起交付,本文就給大家詳解介紹了將依賴和源碼打包在一起的方法,需要的朋友可以參考下
    2023-06-06
  • 樹(shù)莓派使用python-librtmp實(shí)現(xiàn)rtmp推流h264的方法

    樹(shù)莓派使用python-librtmp實(shí)現(xiàn)rtmp推流h264的方法

    今天小編就為大家分享一篇樹(shù)莓派使用python-librtmp實(shí)現(xiàn)rtmp推流h264的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • python實(shí)現(xiàn)二次元圖片展示(屏保)

    python實(shí)現(xiàn)二次元圖片展示(屏保)

    這篇文章主要介紹了python實(shí)現(xiàn)二次元圖片展示,用了API端口相關(guān)的知識(shí)實(shí)現(xiàn),下面詳細(xì)的文章內(nèi)容需要的小伙伴可以參考一下
    2022-02-02
  • Python?文檔解析lxml庫(kù)的使用詳解

    Python?文檔解析lxml庫(kù)的使用詳解

    lxml 是 Python 常用的文檔解析庫(kù),能夠高效地解析 HTML/XML 文檔,常用于 Python 爬蟲(chóng),這篇文章主要介紹了Python?文檔解析:lxml庫(kù)的使用,需要的朋友可以參考下
    2022-09-09
  • python如何實(shí)現(xiàn)完全數(shù)

    python如何實(shí)現(xiàn)完全數(shù)

    這篇文章主要介紹了python如何實(shí)現(xiàn)完全數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Python3如何實(shí)現(xiàn)Win10桌面自動(dòng)切換

    Python3如何實(shí)現(xiàn)Win10桌面自動(dòng)切換

    這篇文章主要介紹了Python3如何實(shí)現(xiàn)Win10桌面自動(dòng)切換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Python中enumerate()函數(shù)詳細(xì)分析(附多個(gè)Demo)

    Python中enumerate()函數(shù)詳細(xì)分析(附多個(gè)Demo)

    Python的enumerate()函數(shù)是一個(gè)內(nèi)置函數(shù),主要用于在遍歷循環(huán)中獲取每個(gè)元素的索引以及對(duì)應(yīng)的值,這篇文章主要介紹了Python中enumerate()函數(shù)的相關(guān)資料,需要的朋友可以參考下
    2024-10-10
  • python實(shí)現(xiàn)人臉識(shí)別代碼

    python實(shí)現(xiàn)人臉識(shí)別代碼

    這篇文章主要介紹了python實(shí)現(xiàn)人臉識(shí)別代碼,還是比較不錯(cuò)的,這里分享個(gè)大家,共需要的朋友參考。
    2017-11-11
  • Python中變量的作用域的具體使用

    Python中變量的作用域的具體使用

    本文主要介紹了Python中變量的作用域的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03

最新評(píng)論