常用元素定位
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[@属性="属性值"]")