WebDriver

WebDriver 是一個遠端控制介面,能夠檢測和控制使用者代理。它提供了一個平臺無關、語言中立的通訊協議,用於跨程序的程式遠端指令控制 Web 瀏覽器的行為。

能夠編寫可在不同平臺上的多種瀏覽器中互換執行的指令集,對於為使用者提供一致的體驗至關重要。隨著 Web 平臺新一輪的發展、裝置多樣性的增加以及對技術之間真正互操作性需求的增長,WebDriver 為跨瀏覽器測試提供了工具。

提供了一組介面,用於發現和操作 Web 文件中的 DOM 元素,以及控制使用者代理的行為。其主要目的是允許 Web 作者編寫測試,以從一個獨立的控制程序自動控制使用者代理,但也可以以一種允許瀏覽器內指令碼控制一個(可能是獨立的)瀏覽器的方式使用。

用法

那麼 WebDriver 能做什麼,它看起來是怎樣的呢?由於 WebDriver 與程式語言無關,這個問題的答案取決於你使用的 WebDriver 客戶端和所選的語言。

但是,使用一個流行的 Python 客戶端,你與 WebDriver 的互動可能看起來像這樣

python
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.expected_conditions import presence_of_element_located

with webdriver.Firefox() as driver:

    driver.get("https://google.com/ncr")
    wait = WebDriverWait(driver, 10)
    driver.find_element(By.NAME, "q").send_keys(f"cheese{Keys.RETURN}")
    wait.until(presence_of_element_located((By.XPATH, '//*[@id="rcnt"]')))
    results = driver.find_elements(By.XPATH, "//a[@href]")

    for i, elem in enumerate(results):
        print(f'#{i} {elem.text} ({elem.get_attribute("href")})')

這可能會產生類似這樣的輸出

#1 Cheese - Wikipedia (https://en.wikipedia.org/wiki/Cheese)

參考

WebDriver 參考提供了關於 WebDriver API 的詳細資訊,包括可用的命令、功能和錯誤。

命令

功能

錯誤

規範

另見