通过ID定位,ID变化导致selenium无法定位到元素

在使用selenium进行自动化测试时,遇到360云盘登录页面的ID不断变化导致无法通过ID定位元素。通过切换到XPath定位解决了问题,但指出XPath性能差、不够健壮和兼容性问题。建议在可能的情况下,使用CSS定位,因其性能更好且更易维护。强调自动化测试中与前端开发人员的良好沟通和元素ID命名规范的重要性。
摘要由CSDN通过智能技术生成

最近在学习用selenium2基于python3做自动化测试,写了一个小脚本,完成360云盘的登录功能;

通过页面元素的ID定位账号输入框和密码输入框;

# coding = utf-8

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://c56.yunpan.360.cn/")

driver.find_element_by_id("quc_account_55212773").clear()
driver.find_element_by_id("quc_account_55212773").send_keys("xxxx")  #账号名
driver.find_element_by_id("quc_password_55212774").clear()
driver.find_element_by_id("quc_password_55212774").send_keys("xxxx")   #密码
driver.find_element_by_xpath('/html/body/div[2]/div/div[3]/div[1]/div/div[2]/form/p[5]/input').click()


执行后报错selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element;

无法定位到元素,经过查找发现,每次打开360云盘网页,账号输入框ID和密码输入框ID都是不同的,因此无法通过ID定位;

修改脚本,通过xp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值