首頁 >後端開發 >Python教學 >Python怎麼使用Selenium WebDriver

Python怎麼使用Selenium WebDriver

PHPz
PHPz轉載
2023-05-08 22:31:562434瀏覽

    Selenium WebDriver 入門 

    一、什麼是Selenium WebDriver

    WebDriver 以在地化方式驅動瀏覽器,就像使用者在本地或使用Selenium 伺服器的遠端機器上所做的那樣,這標誌著瀏覽器自動化的飛躍。

    Selenium WebDriver 指的是語言綁定和各個瀏覽器控製程式碼的實作。這通常被稱為 WebDriver。

    Selenium WebDriver 是 W3C 推薦標準。

    • WebDriver 被設計成一個簡單和簡潔的程式介面。

    • WebDriver 是一個簡潔的物件導向 API。

    • 它能有效地驅動瀏覽器。

    二、安裝Selenium WebDriver

    本文使用環境為python3.11 win10 64位元firefox瀏覽器,所以本文使用的瀏覽器驅動是Firefox的geckodriver ,如果你使用的是其他瀏覽器,那麼選擇自己對應的瀏覽器驅動程式即可。

    2.1 安裝selenium類別庫

    最簡單的方式就是使用pip直接安裝

    pip install selenium

    Python怎麼使用Selenium WebDriver

    2.2 安裝瀏覽器驅動程式

    透過WebDriver, Selenium支援市場上所有主要瀏覽器, 如Chrome、Firefox、Internet Explorer、Edge和Safari. WebDriver盡量使用瀏覽器內建的自動化支援來驅動瀏覽器.

    由於除Internet Explorer之外的所有驅動程式實作都是由瀏覽器供應商自己提供的, 因此標準Selenium發行版中不包括這些驅動程式. 本節介紹了使用不同瀏覽器的基本要求.

    #打開以下網址https://www.selenium.dev/zh-cn/documentation/webdriver/getting_started/install_drivers/

    找到瀏覽器驅動下載的鏈接,這裡可以看到Selenium支援的多個瀏覽器驅動,你自己電腦上裝了什麼瀏覽器,就下載對應的驅動程式即可,本文使用的是firefox,所以選擇firefox的驅動程式。

    Python怎麼使用Selenium WebDriver

    點擊firefox驅動程式下載鏈接,進入到github的releases頁面,可以看到各個版本的驅動程序,本文是win10 64位,選擇的是geckodriver-v0. 32.0-win-aarch74.zip ,依照自己的系統選擇對應的檔案即可。

    Python怎麼使用Selenium WebDriver

    解壓縮後面是一個可執行文件,如下所示:

    Python怎麼使用Selenium WebDriver

    2.3 配置環境變數

    依序開啟我的電腦->屬性->高級系統設定->環境變量,雙擊path,點擊新建,輸入驅動程式geckodriver.exe所在的目錄即可,然後一路點擊確定。

    Python怎麼使用Selenium WebDriver

    Python怎麼使用Selenium WebDriver

    Python怎麼使用Selenium WebDriver

    #簡單驗證一下,新開啟一個控制台,輸入驅動程式檔案名,此處為geckodriver.exe,能夠正常打開即可

    Python怎麼使用Selenium WebDriver

    當然了,還有個野路子,就是直接把該驅動程式放到你的Python目錄下Scripts文件夾中,執行python腳本的時候也能夠直接打開即可。例如我的目錄是D:\Python\Python311\Scripts

    三、寫第一個Selenium腳本

    當你完成Selenium安裝and 驅動安裝後, 便可以開始書寫Selenium腳本了。

    Selenium所做的一切, 就是發送給瀏覽器命令, 用以執行某些操作或為信息發送請求. 您將使用Selenium執行的大部分操作, 都是以下基本命令的組合:

    1.使用驅動實例開啟會話

     driver = webdriver.Firefox()

    2.在瀏覽器上執行操作
    #在本例中, 我們導航到一個網頁.

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

    3.請求瀏覽器資訊
    您可以要求一系列關於瀏覽器的資訊, 包括視窗句柄、瀏覽器尺寸/位置、cookie、警報等

     title = driver.title

    4.建立等待策略
    將程式碼與瀏覽器的當前狀態同步是Selenium面臨的最大挑戰之一, 做好它是一個高級主題.基本上, 您希望在嘗試定位元素之前, 確保該元素位於頁面上, 並且在嘗試與該元素交互之前,該元素處於可交互狀態。隱式等待很少是最好的解決方案, 但在這裡最容易演示

     driver.implicitly_wait(0.5)

    5.发送命令 查找元素
    大多数Selenium会话中的主要命令都与元素相关, 如果不先找到元素, 就无法与之交互

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

    6.操作元素
    对于一个元素, 只有少数几个操作可以执行, 但您将经常使用它们

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

    7.获取元素信息

     value = message.text

    8.结束会话
    这将结束驱动程序进程, 默认情况下, 该进程也会关闭浏览器. 无法向此驱动程序实例发送更多命令

     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()

    以上是Python怎麼使用Selenium WebDriver的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    陳述:
    本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除