selenium问题小记一:xpath定位元素冲突

在自己写的UI自动化脚本中,需要填写一个表单,其中有2个元素的位置基本相同,仅其中xpath定位的数组下标不同,然后这两个元素挨在一起定位时总是第二个元素报错。

手机号: self.driver.find_element(By.XPATH,"/html/body/div[@id='__nuxt']/div[@id='__layout']/div/div[@class='mask']/div[@class='planDialogWrap']/div[@class='planDialog']/form[@class='el-form planDialog-Form']/div[@class='el-form-item is-required'][3]/div[@class='el-form-item__content']/div[@class='el-input']/input[@class='el-input__inner']").send_keys("178xxxxxxx")

年龄:self.driver.find_element(By.XPATH,"/html/body/div[@id='__nuxt']/div[@id='__layout']/div/div[@class='mask']/div[@class='planDialogWrap']/div[@class='planDialog']/form[@class='el-form planDialog-Form']/div[@class='el-form-item is-required'][2]/div[@class='el-form-item__content']/div[@class='el-input']/input[@class='el-input__inner']").send_keys("120")

程序语句如截图,运行报错:

 报错信息: 

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py:1244: in find_element
    return self.execute(Command.FIND_ELEMENT, {
../lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py:424: in execute
    self.error_handler.check_response(response)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7f893862fdc0>
response = {'status': 404, 'value': '{"value":{"error":"no such element","message":"no such element: Unable to locate element: {\...ff8069be4e1 _pthread_start + 125\\n20  libsystem_pthread.dylib             0x00007ff8069b9f6b thread_start + 15\\n"}}'}

调整元素获取顺序后,程序运行正常;

疑问:为什么什么都没有改,只是调整元素获取顺序就可以正常通过了呢?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值