一. id元素定位
id有两种情况:一种id是唯一的,另一种id是动态的。
(1)当id是唯一,最简单的定位方式:
用法:find_element_by_id(“id_value”)
实例:find_element_by_id(“kw”)
(2)若id是动态变化,则不可以采用以上方式定位,如下
二. name元素定位
用法:find_element_by_name(“name_value”)
实例:find_element_by_name(“wd”)
注:name有可能会重复
三. class_name元素定位
用法:find_element_by_class_name(“class_name_value”)
实例:find_element_by_class_name(“wd”)
注:class_name有可能会重复
四. xpath元素定位
用法:find_element_by_xpath(“xpath”)
实例:
(1)属性元素定位
find_element_by_xpath(“//标签名[@属性=’属性值’]”)
id属性:find_element_by_xpath(“//input[@id=’kw’]”)
Class属性:find_element_by_xpath(“//input[@class=’s_ipt’]”)
Name属性:find_element_by_xpath(“//input[@name=’wd’]”)
Maxlength属性:find_element_by_xpath(“//input[@maxlength=’255’]”)
(2)标签名元素定位
指所有input标签元素:find_element_by_xpath(“//input”)
(3)父子元素定位
查找有父亲元素的标签名为span,它的所有标签名叫input的子元素
find_element_by_xpath(“//span/input”)
(4)内容元素定位
find_element_by_xpath(“//p[contains(text(),’京公网’)]”)
注:contains的另一种用法://input[contains(@class,’s’)]说明class属性包含s的元素。
(5)组合元素定位
//父元素标签名/标签名的属性值:指的是span下的input标签下class属性为s_ipt的元素。
find_element_by_xpath(“//span/input[@class=’s_ipt’]”)
多个属性组合定位:
a. 指的是input标签下id属性为kw且name属性为wd的元素
find_element_by_xpath(“//input[@class=’s_ipt’ and @name=’wd’]”)
b. 指的是p标签下内容包含”京公网”且id属性为jgwab的元素
find_element_by_xpath(“//p[contains(text(),’京公网’) and @id=’jgwab’]”)
(6)最简单的方法
右键Copy->Copy XPath
五. link元素定位
用法:find_element_by_link_text(“text_value”)
实例:find_element_by_link_text(“登录”)
六. Partial_link元素定位
用法:find_element_by_partial_link_text(“部分text_value”)
实例:find_element_by_partial_link_text(“登”)
七. tag_name元素定位
用法:find_element_by_tag_name(“tag_name_value”)
实例:find_element_by_tag_name(“input”)
八. CSS元素定位
右键Copy->Copy CSS