Selenium--定位元素

Selenium常用定位元素的方法:
1、id定位,id是唯一标识:

find_element_by_id('kw')  #百度首页的输入框id为"kw"

通常百度搜索的每个结果对应界面元素的ID分别是数字1、2 、3、4顺序,即find_element_by_id(‘1’)可获取第一个出现的查询结果。

2、class属性定位:

find_element_by_class_name('s_ipt')

3、tag标签定位,<后边的标签,如div:

find_elements_by_tag_name('div')
find_element_by_tag_name('div')

其中find_elements是返回所有符合条件的元素,没有符合的返回空列表;
find_element是返回符合条件的第一个元素,没有符合条件的元素, 抛出 NoSuchElementException 异常

4、css选择器:
(1)根据tag名

find_elements_by_css_selector('div')

等价于

find_elements_by_tag_name('div')

(2)根据id属性,#id

find_element_by_css_selector('#kw')

等价于

find_element_by_id('kw')

(3)根据class属性, .class

find_elements_by_css_selector('.s_ipt')

等价于

find_elements_by_class_name('s_ipt')

(4)根据href属性,要加[]

find_elements_by_css_selector('[href="https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/soutu/css/soutu_new2_ae491b7.css]')

如果web页面只有一个href的话,可以只用[href]:

find_elements_by_css_selector('[href]')

(5)子元素与后代元素选择
如果元素2是元素1的直接子元素,可用大于号 > 选到子元素,语法如下:

find_elements_by_css_selector('元素1 > 元素2')

如果元素3是元素2的直接子元素,元素2是元素1的直接子元素,可用> 一层一层选到元素3:

find_elements_by_css_selector('元素1 > 元素2 >元素3')

或者用一个或者多个空格来选择元素1的后代元素3,语法如下:

find_elements_by_css_selector('元素1 元素3')

(6)css选择器联合语法,和:
chrome浏览器ctrl+shift+i调试出开发者工具,ctrl+f,可以验证css语法是否正确,如图:
id为u1的元素共5个,当前选择的第1个元素高亮显示
在这里插入图片描述
选择所有id为u1和u2的元素,用逗号“,”:

#u1,#u2

(7)指定选择父元素的第几个子元素,用:nth-child() :

span:nth-child(3)  #span元素的第三个子元素
nth-child(3) #选择所有父元素的第三个子元素
span:nth-last-child(1)  #span元素的倒数第1个子元素

选择父元素的偶数节点,用 nth-child(even)

p:nth-child(even)

选择父元素的奇数节点,用 nth-child(odd)

p:nth-child(odd)

(8)指定选择父元素的第几个某类型的子节点,用nth-of-type() :

span:nth-of-type(1) #选择第1个span类型的子元素
span:nth-last-of-type(2) #选择倒数第2个span类型的子元素

(9)相邻兄弟节点选择,用加号,“+”:

div + span #选择div后面紧跟着的兄弟节点span
div ~ span #选择div后面所有兄弟节点span
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值