Selenium中8种定位元素的方法总结

小技巧:

定位<p>标签和<a>标签中的文本元素,最佳的定位方式是使用XPath的text()方法:

# 完整文本定位
driver.find_element(By.XPath,"//*[(text(),'你想要定位的文本')]")

# 部分文本定位
driver.find_element(By.XPath,"//*[contains(text(),'你想要定位的文本')]")

# 以……开头的文本
driver.find_element(By.XPath,"//*[starts-with(text(),'你想要定位的文本')]")

注意: text不是属性,无需使用@修饰。

Selenium中8种定位方法:

属性定位方法:

id:通过id属性定位,id通常是唯一的。

element = driver.find_element_by_id("element_id")

name:通过name属性定位,如果页面上有多个元素具有相同的name,则返回第一个。

element = driver.find_element_by_name("element_name")

class_name:通过class_name属性定位,如果页面上有多个元素具有相同的class_name,则返回第一个。

element = driver.find_element_by_class_name("class_name")

标签名定位方法:

tag_name:通过标签名称定位,如 <input>, <div>, <button> 等。

element = driver.find_element_by_tag_name("tag_name")

超链接定位方法:

link_text:通过超链接的完整文本定位,即<a> 标签。

element = driver.find_element_by_link_text("link_text")

partial_link_text:通过超链接的部分文本定位。

element = driver.find_element_by_partial_link_text("partial_link_text")

路径定位方法:

Xpath:

element = driver.find_element_by_xpath("//tag[@attribute='value']")

        //:代表相对路径,例如“//p”,意思是选择文档中的<p>元素,无论它们位于文档的什么位置。

        /:与//相反,代表的是绝对路径,例如/html/body/div/p,意思是选择HTML文档中body标签下的第一个<div>元素中的所有<p>元素。绝对路径很脆弱,任意页面结构的变动都会导致找不到元素。

        tag:可以是具体的标签名,也可以用*代替,即选择文档中的所有元素。

        attribute:代表的是属性,属性前面需要用@来修饰,例如//input[@id='submit']。

CSS选择器定位方法:

CSS Selector:

element = driver.find_element_by_css_selector("css_selector")

基本的css选择器:

通过id定位:使用“#”加上元素的ID值。例如id=submit,那么括号内的css_selector = "#submit"。

通过class_name定位:使用“.”加上元素的class_name值。例如class_name=myClass,那么括号内的css_selector = ".myClass"。

通过标签名定位:直接使用HTML标签名。例如tag_name=div,那么括号内的css_selector = "div"。

属性选择器:

属性精确匹配选择器:[attribute='value']。例如:id='submit',那么括号内的css_selector = [id='submit'],即选择所有id等于submit的元素。

属性包含选择器:[attribute*='value']。例如:id='qqsubmit',那么括号内的css_selector = [id*='submit'],即选择所有id中包含submit的元素。

属性前缀选择器:[attribute^='value']。例如:id^='submitqq',那么括号内的css_selector = [id^='submitqq'],即选择所有id中以submit开头的元素。

属性后缀选择器:[attribute$='value']。例如:id$='submitqq',那么括号内的css_selector = [id$='qqwwsubmit'],即选择所有id中以submit结尾的元素。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值