常用元素定位

1:通过元素ID属性定位

driver.find_element_by_id("{}".format("元素id属性的值"))

2: 通过元素class属性定位

driver.find_element_by_class_name("{}".format("元素class属性的值"))

3:通过元素的name属性定位

 driver.find_element_by_name("{}".format("元素name属性的值"))

4:通过元素的文本内容定位

driver.find_element_by_link_text("{}".format("元素的文本内容"))

5:通过元素的标签名定位元素

driver.find_element_by_tag_name("{}".format("元素的的标签名称"))

6:通过部分元素的文本内容定位元素

driver.find_element_by_partial_link_text("{}".format("元素的部分文本内容"))

7:通过css定位元素标签

本人因为不用css来定位元素标签,所以不做介绍,下面就具体说说通过xpath定位元素标签

8:通过Xpath定位元素标签

部分html页面代码:

<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">

 (1)通过元素的任一属性定位元素:

driver.find_element_by_xpath("//input[@type="text"]")

如果通过上面的方式还不能唯一定位到页面元素:

driver.find_element_by_xpath("//input[@type="text" and @ name="wd"]")

(2)通过元素的文本定位元素:

driver.find_element_by_xpath("//input[text()="元素文本内容"]") #(注意这里是text()是文本内容,所以不用加@

(3)部分匹配:

driver.find_element_by_xpath("//input[contains(text(),"部分匹配的文本内容")]")

driver.find_element_by_xpath("//input[contains(@属性,"属性值")]")

(4)通过标签的同级标签定位元素

 1:通过div标签定位input标签(input标签为弟弟)

driver.find_element_by_xpath(//div[@属性="属性值"]")/following-sibling::input[@属性="属性值"]")

2:通过input标签定位div标签(div标签为哥哥)

driver.find_element_by_xpath(//input[@属性="属性值"]")/preceding-sibling::div[@属性="属性值"]")

(5)通过父标签定位子标签

div为父便签   input 为子标签

driver.find_element_by_xpath(//div[@属性="属性值"]")/input[@属性="属性值"]")

(6)通过子标签定位父标签

driver.find_element_by_xpath(//input[@属性="属性值"]")/parent::div[@属性="属性值"]")

要是定位元素标签的祖父标签

driver.find_element_by_xpath(//input[@属性="属性值"]")/ancestor::div[@属性="属性值"]")

 

posted @ 2019-08-02 11:15  Be_your_own_hero  阅读(272)  评论(0编辑  收藏  举报