元素操作
找到元素後,Selenium 提供幾個核心方法來模擬使用者的操作:點擊、輸入文字、清除輸入框、送出表單。這幾個方法涵蓋了絕大多數自動化情境。
點擊與輸入
# 點擊一個按鈕
button = driver.find_element(By.ID, "submit_button")
button.click()
# 在文本框中輸入文字
text_field = driver.find_element(By.NAME, "username")
text_field.send_keys("my_username")
# 清除文本框中的文字
text_field.clear()
# 提交表單
form = driver.find_element(By.ID, "form_id")
form.submit()
submit() 會模擬表單提交(等同於按下 Enter 或送出按鈕),可以在表單內的任一元素上呼叫;若目標本身就是按鈕,直接 click() 也可以達到相同效果。
範例:搜尋 Google
以下範例會打開 Google,在搜尋框輸入關鍵字並送出,最後印出第一筆搜尋結果的標題:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("https://www.google.com")
# 查找搜尋框並輸入關鍵字
search_box = driver.find_element(By.NAME, "q")
search_box.send_keys("Selenium Python" + Keys.RETURN)
# 取得第一個結果的標題
first_result = driver.find_element(By.CSS_SELECTOR, "h3")
print(first_result.text)
driver.quit()
這個範例目前用 send_keys(... + Keys.RETURN) 送出搜尋,並且沒有加任何等待,實務上頁面載入可能需要一點時間;下一頁會說明如何用等待機制讓這類腳本更穩定。
相關資料
接著請學習等待機制,讓操作在頁面真正就緒後才執行。