selenium(python)定位(查詢)元素的方法小結
阿新 • • 發佈:2019-01-07
有多種方法可以在網頁中定位元素。你可以為你的專案選擇最合適的那一個。selenium提供以下方法用於在網頁中定位元素。
如果匹配到多個元素將預設返回第一個。
- find_element_by_id(屬性)
- find_element_by_name(屬性)
- find_element_by_xpath(根據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(根據css語法)
查詢(定位)多個元素(以下方法將會返回列表):
使用方法同定位單個元素,不同的是返回匹配的多個元素的列表。
- find_elements_by_name
- find_elements_by_xpath
- find_elements_by_link_text
- find_elements_by_partial_link_text
- find_elements_by_tag_name
- find_elements_by_class_name
- find_elements_by_css_selector
除了以上給出的公共方法,還有2個私有方法也許對網頁中的元素定位有用。這兩個方法是find_element 和 find_elements。
舉個栗子:
from selenium.webdriver.common.by import By
driver.find_element(By.XPATH, '//button[text()="Some text"]')
driver.find_elements(By.XPATH, '//button'
以下是By類可用的屬性:
ID = "id"
XPATH = "xpath"
LINK_TEXT = "link text"
PARTIAL_LINK_TEXT = "partial link text"
NAME = "name"
TAG_NAME = "tag name"
CLASS_NAME = "class name"
CSS_SELECTOR = "css selector"
還可以通過javascript語法來定位,返回型別就是單個HTML元素或者陣列。
webdriver.execute_script("javascript code")
舉個栗子:
from selenium import webdriver
driver = webdriver.Firefox()
driver.execute_script("document.getElementById('username')")