关于web自动化定位元素失败的分析
问题分析
1.首先-明确范围 – web自动化测试
2.其次-明确条件 – 元素定位都正确
3.然后-明确现象 – 元素定位会失败
4.最后-得出结论
1.判断定位的元素属性信息是否正确(已经确定正确),但是业务逻辑是否正确需要确定
2.受到网络/服务器/浏览器影响,页面加载过慢会造成定位失败,需要通过元素等待处理
3. 目标元素是否直接可见/是否需要鼠标动作才能显现出来4.默认浏览器大小的页面加载范围过小造成部分元素遮挡,需要启动浏览器后最大化窗口
5.受前端动态加载技术影响,页面动态加载数据有时需要监听滚动条动作(长页面翻页),需要操作滚动条
6.页面操作过程中的窗口弹框alert也会影响页面定位和操作,需要先处理alert
7.页面部分超链接点击后会在新窗口中打开,目标元素在新窗口中时,需要进行窗口切换
8.收到前端页面框架影响,页面内容可能会在frame子页中,需要frame切换
问题总结
由于这个问题回答清楚需要很多Selenium的API常用操作,所以针对这个问题的回答要特别注意代码实现
业务逻辑
1).注意业务逻辑的先后顺序 – 打开首页就直接登录操作
2).输入网址
驱动对象调用get(“协议://URL”)
driver.get(“http://www.xxx.com”)
3).业务操作
登陆操作 输入用户名/密码/验证码
driver.find_element_by_id(“username”).send_keys(“xxxxxx”)
driver.find_element_by_id(“password”)