python8大元素定位
8大元素定位
返回webelement对象
-
靠单一的特征来找元素
-
id
- driver.find_element_by_id("")
- driver.find_element(by=By.ID, value="")
-
class_name
- driver.find_element_by_class_name("")
- driver.find_element(by=By.CLASS_NAME,value="")
- driver.find_elements_by_class_name("")
- driver.find_elements(by=By.CLASS_NAME,value="")
-
tag_name
- driver.find_element_by_tag_name("")
- driver.find_element(by=By.TAG_NAME,value="")
- driver.find_elements_by_tag_name("")
- driver.find_elements(by=By.TAG_NAME,value="")
-
name
- driver.find_element_by_name("")
- driver.find_element(by=By.NAME,value="")
- driver.find_elements_by_name("")
- driver.find_elements(by=By.NAME,value="")
-
link_text a元素
- 完整匹配文本值
- driver.find_element_by_link_text("")
- driver.find_element(by=By.LINK_TEXT,value="")
- driver.find_elements_by_link_text("")
- driver.find_elements(by=By.LINK_TEXT,value="")
- 部分匹配
- driver.find_element_by_partial_link_text("")
- driver.find_element(by=By.PARTIAL_LINK_TEXT,value="")
- driver.find_elements_by_partial_link_text("")
- driver.find_elemens(by=By.PARTIAL_LINK_TEXT,value="")
- 完整匹配文本值
-
-
组合各种特征和关系来找元素
- xpath
- driver.find_element_by_xpath()
- driver.find_elements_by_xpath()
- driver.find_element(by=By.XPATH, value="")
- driver.find_elements(by=By.XPATH, value="")
- 绝对定位 /开头 父/子
- /html/body……
- form/……
- 相对定位 //
- //标签名[@属性名=属性值]
- //input[@id="kw"]
- //*[@属性名=属性值]
- //*[@id="kw"]
- 逻辑运算:and or
- //input[@id="kw" and @name="wd" or @type="text"]
- 通过元素的文本内容来定位(文本内容固定)//标签名[text()=文本值]
- //a[text()="高考大数据"]/../../../../form/span/a/../input
- 包含(属性/文本内容-包含一部分)- contains(@属性/text(),被包含的内容)
- //span[contains(@class,"quickdelete-wrap")]/input
- //span[contains(text(),"图片搜索")]/../input
- //标签名[@属性名=属性值]
- 层级定位
- 通过父辈、祖先辈找儿子、孙子
- //div[@id="u1"]/a[@name="tj_login"] a只能是儿子
- //div[@id="u1"]//a[@name="tj_login"] a不仅仅是儿子
- 通过儿子找爸爸、爷爷
- //span[text()="换一换"]/ancestor::div[@class="s-hotsearch-title"]//div
- 通过兄弟找兄弟
- //div[@id="u1"]//a[@name="tj_login"]/preceding-sibling::span[@id="s-usersetting-top"]
- //span[@id="s-usersetting-top"]/following-sibling::a[@name="tj_login"]
- 通过父辈、祖先辈找儿子、孙子
- xpath-轴定位语法
- 轴运算:
- ancestor:祖先节点,包括父
- parent:父节点
- preceding:当前元素节点标签之前的所有节点(html页面先后顺序)
- preceding-sibling(当前元素节点标签之前的所有兄弟节点
- following:当前元素节点标签之后的所有节点(html页面先后顺序)
- following-sibling:当前元素节点标签之后的所有兄弟节点
- 使用语法:
- /轴名称::节点名称[@属性=值]
- //div[@id="u1"]//a[@name="tj_login"]/preceding-sibling::span[@id="s-usersetting-top"]
- //span[@id="s-usersetting-top"]/following-sibling::a[@name="tj_login"]
- 较多的应用场景:
- 页面显示为一个表格样式的数据列。需要通过组合来定位元素
- 轴运算:
- css
- driver.find_element(by=By.CSS_SELECTOR, value="")
- driver.find_elements(by=By.CSS_SELECTOR, value="")
- driver.find_element_by_css_selector("")
- driver.find_elements_by_css_selector("")
- input[id="kw"]
- xpath
浙公网安备 33010602011771号