1.Selenium经典的八大元素定位法:id、name、class_name、tag_name、link_text、partial_link_text、xpath、css_selector
2.八大元素定位法
#coding:utf-8
from selenium import webdriver
driver = webdriver.Chrome()#将浏览器驱动的路径配置在path中
a.通过元素id定位元素,唯一标识元素(优先选择)
driver.find_element_by_id("id值")
b.通过元素属性name定位元素
driver.find_element_by_name("name值")
c.通过元素属性class_name定位元素
driver.find_element_by_class_name("class_name的值")
d. 通过元素属性tag_name定位元素
driver.find_element_by_tag_name("tag_name的值")
e.通过链接文本或部分链接文本
driver.find_element_by_link_text("链接文本")
driver.find_element_by_partial_link_text("部分链接文本")
实例:
<a href ="http://www.baidu.com">转到百度</a>`#转到百度就是链接文本
f.通过CSS选择器
driver.find_element_by_css_selector("css表达式")#css表达式在CSS详细说明
g.通过XPATH选择器
driver.find_element_by_xpath("xpath表达式")#xpath表达式在xpath详解博客中
h.通过Javascript选择
driver.execute_script("return $('#kw')[0]")
【f.g可通过右键copy–copy selector或者copy xpath获得】
3.通过find_element方法
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
element = driver.find_element(by = By.xx,value = "xx属性的值")
(xx:ID、NAME、CLASS_NAME、TAG_NAME、PARTIAL_LINK_TEXT、LINK_TEXT、CSS_SELECTOR、XPATH)
By类的类属性实际就是元素定位的方式
class By(object):
"""
Set of supported locator strategies.
"""
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"
4.多个元素定位
driver.find_elements_by_具体元素定位方式("具体表达式")
#得到的多组数据以列表形式存储,用for循环遍历即可