我們想要使用網頁元素,首先要載入 selenium 的 By 模組,接著使用 find_element() 或 find_elements() 搭配參數設定,取得指定的網頁元素
By 模組 :
from selenium.webdriver.common.by import By
查找元素 :
下列是一些常用參數 :
接下來我會照https://example.oxxostudio.tw/python/selenium/demo.html 這個開啟範例網址,去取得其網頁元素,並按照參考資料的程式碼去實作一次
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select # 使用 Select 對應下拉選單
import time
driver = webdriver.Chrome()
driver.get('https://example.oxxostudio.tw/python/selenium/demo.html') # 開啟範例網址
# 取得 id 為 a 的網頁元素 ( 按鈕 A )
a = driver.find_element(By.ID, 'a')
# 取得 class 為 btn 的網頁元素 ( 按鈕 B )
b = driver.find_element(By.CLASS_NAME, 'btn')
# 取得 class 為 test 的網頁元素 ( 按鈕 C )
c = driver.find_element(By.CSS_SELECTOR, '.test')
# 取得屬性 name 為 dog 的網頁元素 ( 按鈕 D )
d = driver.find_element(By.NAME, 'dog')
# 取得 tag 為 h1 的網頁元素
h1 = driver.find_element(By.TAG_NAME, 'h1')
# 取得指定超連結文字的網頁元素
link1 = driver.find_element(By.LINK_TEXT, '我是超連結,點擊會開啟 Google 網站')
# 取得超連結文字包含 Google 的網頁元素
link2 = driver.find_element(By.PARTIAL_LINK_TEXT, 'Google')
# 取得 html > body > select 這個網頁元素
select = Select(driver.find_element(By.XPATH, '/html/body/select')) \
使用 Selenium 函式庫操作網頁元素下列幾種常見方法 :
要使用這些方法有兩種方式 :
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep
driver = webdriver.Chrome()
driver.get('https://example.oxxostudio.tw/python/selenium/demo.html')
a = driver.find_element(By.ID, 'a')
c = driver.find_element(By.CLASS_NAME, 'test')
add = driver.find_element(By.ID, 'add')
# 1. 針對指定元素呼叫方法,例如 click()
a.click()
sleep(5)
# 2. 使用 ActionChains 的方式
actions = ActionChains(driver)
actions.click(c).pause(1)
actions.double_click(add).pause(1).click(add).pause(1).click(add)
# 最後執行儲存的動作
actions.perform()
參考資料
https://steam.oxxostudio.tw/category/python/spider/selenium.html#a4
https://utrustcorp.com/python-selenium/