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