8大元素定位
通过id定位
driver.find_element_by_id("kw").send_keys("selenium")
driver.find_element_by_id("su").click()
通过name定位
driver.find_element_by_name("wd")
通过class定位
driver.find_element_by_class_name("s_ipt")
通过tag_name定位
driver.find_element_by_tag_name("input")
通过link_text定位
driver.find_element_by_link_text("")
通过partial_link_text定位
driver.find_element_by_partial_link_text("")
通过xpath定位
- 绝对定位
/html/body/div[1]/div[1]/div[4]/div[1]/div/form/span[1]]
- 相对定位
# //标签名[@属性=值]
//*[@id="s-usersetting-top"]
- 层级定位
#//一级元素//二级元素...
driver.find_element(By.XPATH,'''//div[@id="1"]//h3[@class="t"]//a[contains(@data-click,"'F':'778317EA',")]''')
- 文本匹配
#//标签名[text()=值]
- 包含:contains()
#//标签名[contains(@属性,值)], //标签名[contains(text(),值)]
- 组合and/or
#//标签名[@属性=值 and @属性=值 and contains(@属性,值)]
- 轴定位:找关系
# ancestor:祖先节点(包括父节点)
# parent:父节点
# preceding:在当前元素之前的所有节点
# preceding-sibling:在当前元素之前的兄弟姐妹
# following:在当前元素之后的所有节点
# following-sibling:在当前元素之后的兄弟姐妹
#当前元素/轴名称::标签名[@属性=值]
//td[@class="test"]//div[text()="test"]/parent::*/parent::*/preceding-sibling::td[@class="test"]