【测试之路】

"本文记录了一位初学者在使用Selenium进行网页自动化时,从尝试XPath定位元素失败,到最终通过CSS选择器解决问题的历程。重点在于理解'’字符导致的XPATH表达式错误和CSS定位的运用。"
摘要由CSDN通过智能技术生成

提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

第一次开始在csdn上记录测试成长之路所遇到的问题


一、起因

问题起于20221229晚上自己根据项目编写简易自动化脚本时,使用XPATH定位下拉框中的元素,想通过函数封装定位,只需要在代码中输入想要选择的元素即可完成定位,于是就有了下面这段代码

driver.find_element(By.XPATH, demo.productionType("标准品生产")).click()
def productionType(data):
    content = ["标准品生产", "定制品生产", "数据填报"]
    subscript = content.index(data)
    path = f'\'/html/body/div[3/div[1]/div[1]/ul/li[{subscript+1}]\''
    return path

然后发生最不想见的颜色,红色,大大的红色,一片片的红色,报错如下

Failed to execute 'evaluate' on 'Document': The string '/html/body/div[3/div[1]/div[1]/ul/li[1]' is not a valid XPath expression.

二、解决之道

由于是初学者,搞不懂为什么,于是便赖上了度娘,再经过反反复复的查找,修改定位方法,发现依然是报错。用XPATH能再浏览器中检索到元素,一旦用代码就不行,后面使用了CSS定位

代码如下(示例):

selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: An invalid or illegal selector was specified

没错还是报错
经过再次再度娘身上深度摸索,在这篇文章中找到错误所在。。。黄天不负有心人

def productionType(data):
    content = ["标准品生产", "定制品生产", "数据填报"]
    subscript = content.index(data)
    path = f'[x-placement="bottom-start"] li:nth-child({subscript+1})'
    return path

前后一对比,尽然是这玩意“\”在阻碍我前进的步伐。


首次记录自己的所学的问题,看看自己能学多久
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值