selenium-xpath定位方式写法

**

xpath定位写法

**
提示:XPath即XML路径语言,支持从xml或html中查找元素节点,使用XPath完全可以替代其他定位放式

万能写法

  • find_element_by_xpath(‘//*[@id=“”]’)等同于find_element_by_id(“”)
  • find_element_by_xpath(‘//*[@name=“”]’)等同于find_element_by_name(“”)
  • find_element_by_xpath(‘//*[@class=“”]’)等同于find_element_by_class_name(“”)
  • find_element_by_xpath(‘//标签名’)等同于find_element_by_tag_name(“标签名”)
  • find_element_by_xpath(‘//a[contains(text(),“”)]’)等同于find_element_by_link_text(“”)
  • find_element_by_xpath(‘//*[@id=“”]’)等同于find_element_by_partial_link_text(“”)

xpath定位方式内已经包含了除了css定位以外的所有定位方式,所以我们第一推荐使用xpath方式去使用到代码内

提示:非必要不使用浏览器复制出的路径,最好自己手写从页面复制的路径一般从顶部body或HTML标签下开始获取,这样的方式会倒是查找元素时间过长导致代码报错

路径

/绝对路径: /html/body/div
//相对路径: //div/form //*/form 路径中可以使用 *代表任意标签
.当前路径: //div/form/. 等同于//div/form
…上级路径: //div/form/… 等同于//div

索引

从1开始: /html/body/div[2] //div[1]/form

属性

@属性名:定位包含特定属性名的标签, 如//input[@class]
@属性名=“属性值”:定位特定属性名=属性值的标签,如//input[@id=“kw”]
@=“属性值”:定位任意属性名=属性值的标签, 如 //input[@=‘kw’]
多属性结合定位://input[@id=“kw” and @class=‘kw-class’]或//input[@id=“kw”][@class=“kw-class”] (and处也支持使用or,表示或)

函数

text():标签中的文本值,如//a[text()=“百度首页走起~”]
contains(): 包含,如//a[contains(text(), “百度首页”)]
starts-with(): 以**开头,如//a[starts-with(text(), “百度”]
last(): 最后一个, 如//div[last()]

parent: 父标签
child:子标签
following: 后面的,如://*[text()=“用户名”]/following::input[1] # 紧邻文本为用户名的输入框
preceding:前面的
弹出框处理
allert警告框
alert = driver.switch_to.alert() alert.accept() # 确认 或alert.dismiss() 关闭

confirm确认框
confirm = driver.switch_to.alert() confirm.accept() # 确认 或alert.dismiss() 取消

propmt提示框
propmt = driver.switch_to.alert() propmt.send_keys() 输入 propmt.accept() # 确认 或alert.dismiss() 关闭

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值