自动化的8种定位方式

8种 定位方式
6种 是通过单一属性来定位的
2种 是组合各种属性来定位 + 结合各种关系来定位

1、id属性

ele = driver.find_element_by_id(“kw”) #找到id = kw的一个元素
#ele1= driver.find_elements_by_id(“kw”) #找到id = kw的所有的元素,返回一个列表
#print(ele.tag_name)
#print(ele.get_attribute(“class”))

2、name属性

driver.find_element_by_name(“phone”) #找一个单一的元素,从上放下,找到符合条件的第一个
driver.find_elements_by_name(“phone”) #找到所有匹配的元素,返回一个列表

3、class属性

driver.find_element_by_class_name()
driver.find_elements_by_class_name()

4、标签名

driver.find_element_by_tag_name(“lgfff”)
driver.find_elements_by_tag_name(“lgfff”)

5 6 、链接元素 link_text #完全匹配 #模糊匹配

driver.find_element_by_link_text(“更多产品”) #完全匹配
driver.find_elements_by_partial_link_text(“更多”) #模糊匹配

7 8、 xpath =ZZ 易懂 css = 难懂

xpath定位

driver.find_elements_by_xpath()

绝对定位 严格按照路径和位置来定位 以/开头 父/子关系

/html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input

相对定位 参照物:整个html 只要在整个页面中,找到符合属性的元素,以//开头

//*[@id=“kw”]

7.1 //标签名[@属性名=“属性值”] //input[@id=“kw”] 匹配所有 //[@id=“kw”]

driver.find_elements_by_xpath("//input[@id=“kw”]")

7.2 逻辑运算 and or //标签名[@属性名=“属性值” and @属性名=“属性值”] //input[@id=“kw” and @name=“wd”]

driver.find_elements_by_xpath("//input[@id=“kw” and @name=“wd”]")

7.3 文本定位 //标签名[text()=“文本内容”] #文本内容完全匹配 //a[text()=“新闻”]

driver.find_elements_by_xpath("//a[text()=“新闻”]")

7.4 部分匹配 文本内容/属性值 contains

//标签名[contains(text(),“部分文本内容”)] #文本内容太长 //[contains(text(),“我的”)]
//标签名[contains(@属性名,“部分属性值”)] #id(不变动+变动 如2020dhskafhald) #class 多个 //[contains(@id,“2020”)]
driver.find_elements_by_xpath("//[contains(text(),“我的”)])

7.5.1 层级定位 第一种方式 //div[@id=“ul”]//a[@name=“tj_login”]

后一个条件,是在前一个得到的结果之内去搜索的。//条件1//条件2…

7.5.2 层级定位 - 轴定位 #表达式 /轴定位名称::标签名[属性表达]
轴名称

ancestor:祖先节点,包含父节点和祖父节点
parent:父结点
preceding_sibling:当前节点标签前的所有兄弟节点
following_sibling:当前节点标签后的所有兄弟节点
following:当前节点标签后的所有节点

使用语法

/轴名称::节点名称 注:轴定位最好用单斜杠

例子

//span[text()=“哈哈”]/parent::div/following_sibling::div[@class=“attend_data_state”]//img

在这里插入图片描述

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值