在自己写的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"}}'}
调整元素获取顺序后,程序运行正常;
疑问:为什么什么都没有改,只是调整元素获取顺序就可以正常通过了呢?