如何使用Python在Selenium中同時識別多個元素?
我們可以在Selenium中同時定位和識別多個元素。有多種策略可以定位元素。以下是定位元素的不同方法:
find_elements_by_xpath – 此方法返回所有與引數中匹配的xpath的元素,並以列表形式返回。如果沒有任何元素具有匹配的xpath,則將返回一個空列表。
語法
driver.find_elements_by_xpath("//input[name='text-search']")
find_elements_by_link_text – 此方法返回所有與引數中連結文字值匹配的元素,並以列表形式返回。如果沒有任何元素具有匹配的文字,則將返回一個空列表。
語法
driver.find_elements_by_link_text("Tutorialspoint")
find_elements_by_name – 此方法返回所有與引數中name屬性匹配的元素,並以列表形式返回。如果沒有任何元素具有匹配的name,則將返回一個空列表。
語法
driver.find_elements_by_name("name-search")
find_elements_by_partial_link_text – 此方法返回所有與引數中部分連結文字值匹配的元素,並以列表形式返回。如果沒有任何元素具有匹配的name,則將返回一個空列表。
語法
driver.find_elements_by_partial_link_text("Tutorials")
find_elements_by_tag_name – 此方法返回所有與引數中標籤名匹配的元素,並以列表形式返回。如果沒有任何元素具有匹配的標籤名,則將返回一個空列表。
語法
driver.find_elements_by_tag_name("a")
find_elements_by_class_name – 此方法返回所有與引數中類名匹配的元素,並以列表形式返回。如果沒有任何元素具有匹配的標籤名,則將返回一個空列表。
語法
driver.find_elements_by_class_name("tutor")
find_elements_by_css_selector – 此方法返回所有與引數中css匹配的元素,並以列表形式返回。如果沒有任何元素具有匹配的css,則將返回一個空列表。
語法
driver.find_elements_by_css_selector("input#tutor")
示例
定位多個元素的程式碼實現。
from selenium import webdriver #browser exposes an executable file #Through Selenium test we will invoke the executable file which will then #invoke actual browser driver = webdriver.Chrome(executable_path="C:\chromedriver.exe") # to maximize the browser window driver.maximize_window() #get method to launch the URL driver.get("https://tutorialspoint.tw/selenium/selenium_automat ion_practice.htm") #to refresh the browser driver.refresh() # identifying the checkboxes with type attribute in a list chk =driver.find_elements_by_xpath("//input[@type='checkbox']") # len method is used to get the size of that list print(len(chk)) #to close the browser driver.close()
廣告