定位元素方法
1. driver.find_element_by_id() 按照id查找元素
2. driver.find_element_by_partial_link_text() 模糊查询链接的文本
3. driver.find_element_by_link_text() 完全匹配链接的文本
4. driver.find_element_by_class_name() 按照元素的class属性值进行待查
5. driver.find_elements_by_tag_name() 按照标签查询元素
6. driver.find_element_by_xpath() 按照xpath路径来查询元素
xpth定位
b=webdriver.Firefox() b.get("http://www.maiziedu.com/")
1. 绝对路径查询
e=b.find_element_by_xpath("html") #xpth查询根节点 print(e.text) #获取根节点下所有的文本
e=b.find_element_by_xpath("/html/body/div[3]/div[1]/div[1]/div/div[2]/ul/li[1]") #按照绝对路径查询元素ul下第一个li元素 print(e.get_attribute('class')) #获取该元素下点calss属性
2. 在整个文档中查询某元素
e=b.find_element_by_xpath("//*") #查询文档中的第1个元素 print(e.tag_name) #获取第一个元素的tag_namee=b.find_element_by_xpath("//li") #查询文档中第1个元素 print(e.get_attribute('class')) #获取第1个元素的class属性 e=b.find_element_by_xpath("//li[2]") #查询文档中第2个li元素 print(e.get_attribute('class')) #获取第2个元素的class属性
3.查询父元素
e=b.find_element_by_xpath("//li[2]/.") #查询文档中第2个li元素的当前节点 print(e.tag_name) #获取该元素点标签名 e=b.find_element_by_xpath("//li[2]/..") #查询文档中的第2个li元素的父元素 print(e.tag_name) #获取该元素点标签名4. 查询包含或不包含某属性的元素
e=b.find_element_by_xpath("//div[@id]") #查询文档中的第一个有id属性的div元素 print(e.get_attribute('id')) e=b.find_element_by_xpath("//div[not(@id)]") #查询文档中的第一个没有id属性的div元素 print(e.get_attribute('class'))5. 查询包含或不包含某属性值=特定值的元素
6. count函数查询存在某元素*个的父元素e=b.find_element_by_xpath('//div[not(@class="head-container"])') #查询文档中的第一个没有id属性的div元素 print(e.get_attribute('class'))
e=b.find_element_by_xpath('//ul[count(li)=1]/../h5') #有1个li元素的ul->获取该ul的父节点->获取该父节点的h5元素 print(e.text) #获取h5元素的文本内容 教程:http://www.w3school.com.cn/xpath/xpath_nodes.asp