您的位置:首页 > 编程语言 > Python开发

selenium(python)定位(查找)元素的方法小结

2017-10-14 14:14 901 查看
有多种方法可以在网页中定位元素。你可以为你的项目选择最合适的那一个。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"


翻译自selenium官网有改动

还可以通过javascript语法来定位,返回类型就是单个HTML元素或者数组。

webdriver.execute_script("javascript code")


举个栗子:

from selenium import webdriver
driver = webdriver.Firefox()
driver.execute_script("document.getElementById('username')")
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  selenium python