如何使用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.com/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()

更新于:2020年7月28日

728 次浏览

启动您的职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.