Selenium WebDriver 是一個富強的主動化測試東西,它容許開辟者主動化地把持瀏覽器停止各種操縱,如打開網頁、輸入數據、點擊按鈕等。本文將深刻探究 Selenium WebDriver 的基本不雅點、操縱技能以及怎樣停止有效的 Web 元素操縱。
1. 什麼是 Selenium WebDriver?
Selenium WebDriver 是 Selenium 項目標一部分,它供給了一套友愛的 API 用於主動化測試 Web 利用順序。WebDriver 可能與各種瀏覽器(如 Chrome、Firefox、Safari 等)協同任務,實現對網頁的主動化操縱。
2. Selenium WebDriver 的基本操縱
2.1 安裝 Selenium 跟 WebDriver
起首,妳須要安裝 Selenium 庫。在 Python 情況中,可能利用 pip 命令停止安裝:
pip install selenium
接著,下載對應瀏覽器的 WebDriver。比方,對 Chrome 瀏覽器,須要下載 ChromeDriver。
2.2 初始化 WebDriver
from selenium import webdriver
driver = webdriver.Chrome(executable_path='path/to/chromedriver')
2.3 打開網頁
driver.get('https://www.example.com')
2.4 定位元素
Selenium 供給了多種元素定位方法,包含:
find_element_by_id()
find_element_by_name()
find_element_by_xpath()
find_element_by_link_text()
find_element_by_partial_link_text()
find_element_by_tag_name()
find_element_by_class_name()
find_element_by_css_selector()
比方,利用 XPath 定位元素:
element = driver.find_element_by_xpath('//input[@name="q"]')
2.5 元素操縱
- 輸入內容:
element.send_keys("查抄內容")
- 點擊按鈕:
element.click()
- 獲取文本內容:
element.text
- 獲取屬性值:
element.get_attribute("屬性稱號")
- 獲取元素的寬高:
element.size
- 獲取元素的坐標:
element.location
3. 元素等待技能
在停止元素操縱時,偶然須要等待元素載入實現。Selenium 供給了以上等待技能:
- 顯式等待:
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "element_id")))
- 隱式等待:
driver.implicitly_wait(10)
4. 實戰案例
以下是一個利用 Selenium WebDriver 停止元素操縱的簡單示例:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome(executable_path='path/to/chromedriver')
driver.get('https://www.example.com')
# 定位查抄框
search_box = driver.find_element_by_id('search_box')
# 輸入查抄內容
search_box.send_keys('Selenium WebDriver')
# 點擊查抄按鈕
search_button = driver.find_element_by_id('search_button')
search_button.click()
# 等待查抄成果載入
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, 'search_results')))
# 封閉瀏覽器
driver.quit()
5. 總結
Selenium WebDriver 是一個功能富強的東西,可能幫助妳輕鬆掌控 Web 元素操縱。經由過程控制本文介紹的基本不雅點跟技能,妳將可能更好地停止主動化測試跟開辟任務。