自动化测试 —— Web自动化三大报错

Web自动化三大报错有哪些呢?接下来给大家讲讲。

Web自动化三大报错(Exception)

1. Exception1:no such element(没有在页面上找到这个元素)

reason1:元素延迟加载了

solution:

添加隐式等待:

# 隐式等待
  driver.implicitly_wait(5)

每隔0.5s去找一次元素,如果找到就继续执行,如果没找到就继续去找。

一直到你配置的时间,还没找到,就报no such element。

大大加强了自动化的稳定性,默认都是需要配的。

reason2:定位器写错(拼写错误、id是变化的等)

solution:

怎么调试定位方式?(在自动化打开的浏览器里面调试哦!)

在elements里面,调

 在console界面,使用$x('xpath')调试

reason3:嵌套了iframe内联框架

solution:

selenium里面,每一个iframe和网页本身都是被分割开来的独立部分,必须一层一层进入到你的iframe,才能看到。

 

 # 切换进入iframe(进入房间)
  frame = driver.find_element(By.XPATH, '//*[@id="layui-layer-iframe1"]')
  driver.switch_to.frame(frame)
  # 退出iframe一定是退到客厅(最外层)
  driver.switch_to.default_content()

reason4:切换到了另一个窗口定位

solution:

若网页打开了新窗口,你希望在新打开的窗口上定位操作元素,就必须把窗口切换过去

 # 切换窗口
  handles = driver.window_handles
  print(handles)
  # # 按下标切换
  # driver.switch_to.window(handles[1])
  # 按title切换
  for h in handles:
      driver.switch_to.window(h)
      if driver.title.__contains__('我的订单'):
          break

2. Exception2:element not interactable(元素不可交互)

相似问题:element click intercepted(元素点击被拦截)

reason1:被遮住了

solution

如果是弹窗类遮住了,就把弹窗关闭,让它显示出来。

reason2:没有显示出来

solution:

元素需要前置操作,或者特殊操作才能显示出来。

 

3. Exception3:element not attached to the page document(元素还没有显示到页面上)

reason:元素存在,但需要在前端渲染

solution:

元素已经找到了,但是还没有正式显示到网页上,需要进行前端加载(比如js动态加载)

对于这种情况,隐式等待、显示等待都没有用了,只能使用固定等待。

​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值