元素定位之css节点定位

在元素定位过程中,当常规CSS或XPath定位不稳定时,可以采用以固定元素为基准的定位策略。例如,以带有class='qua_show_con_right'的元素作为起点,利用CSS选择器的不同特性如^, *=, $进行定位。对于第一个class为bursting的元素,可以结合相邻元素选择器操作。若定位复杂,可以通过遍历元素并利用标签属性,如href,注意实际使用时可能需要补充完整URL(如将href='www.baidu.com'修正为https://www.baidu.com)。" 126618863,15086539,Pytest自动化测试框架详解,"['Python', '自动化测试', 'pytest框架', '测试用例', '数据驱动测试']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很多时候元素定位时有些标签可能不是很好定位,而直接用css或者xpath的变动比较大,网页结构一边那么可能就定位不到了
那么在这种时候一般我们可以定位到固定元素a,然后以a为基础进行定位
以这个为例在这里插入图片描述
以a为原型定位,用CSS的class属性定位[class=‘qua_show_con_right’]
当然也可以以css的其他方式比如以什么开头的[class^=‘qua_show’]
包含[class*=‘qua_show’]
还有结尾[class$=con_right]

a=driver.find_element(By.CSS_SELECTOR,'[class="qua_show_con_right"]')

如果我们要定位到第一个 class=bursting那么怎么做呢

b=driver.find_element(By.CSS_SELECTOR,'[class="qua_show_con_right"]>a:nth-child(2)')
//a节点下面有四个子节点,那么第一个bursting其实是a的第二个子节点就是a:nth-chlid(2)

那么定位相邻的元素怎么做呢,以b为基础,选b下面的相邻元素

driver.find_element(By.CSS_SELECTOR,'[class="qua_show_con_right"]>a:nth-child(2)+a'

如果这些都比较麻烦的话那么直接遍历元素组吧
然后用标签属性来搞定

a=driver.find_element(By.CLASS_NAME,'bursting')
//这样就直接有了三个元素
//遍历
for i in a :
	if i.get_attribute('clstag')=='pageclick|keycount|shouye_20181018|scenario3_sku4'

这里发现一个问题如果获取href属性是需要给他补全的,比如看到的href=“www.baidu.com”
要给他写成https://www.baidu.com才能顺利使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值