• 0
  • 0
分享

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

  Web自动化三大报错(Exception)

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

  reason1:元素延迟加载了

  solution:

  添加隐式等待:

  # 隐式等待
  driver.implicitly_wait(5)

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

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

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

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

  solution:

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

  在elements里面,调

1-1.jpg

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

1-2.jpg

  reason3:嵌套了iframe内联框架

  solution:

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

1-3.jpg

  # 切换进入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:

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

1-4.jpg

  reason2:没有显示出来

  solution:

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

1-5.jpg

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

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

  solution:

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

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


作者:程序员小濠    

来源:http://www.51testing.com/html/15/n-7798115.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   引言  一款完整的游戏,不仅有精美的画面,还有符合游戏的音乐、音效与配音。音乐提升玩家氛围,配音引导玩家,音效是游戏内涵的补充,它可以更好展现游戏开发者架构整个游戏的价值取向。  优秀的游戏音效可以让玩家在赏玩游戏之后,产生“余音绕梁三日而不绝” 的共鸣,这样游戏内涵也得到了提升,并更有效地延长了游戏的生命力。  1.游戏音效的分类  (1)环境音效:环境音效主要用于营造场景或者关卡的氛围和情绪,包括了下雨天、刮风、晴天、等天气相关的音效以及风吹的声音等其他与环境有关的音效。  (2)场景音效:场景音效的作用与环境音效一致。是场景内的各类物件的音效,主要是角色同物件交互时的音效。如打碎瓦罐...
            0 0 651
            分享
          • 什么是网络爬虫?相信刚接触爬虫这个词的人都有这样的疑问,网络爬虫可以做什么?它是基于什么样的原理,如果想要学习爬虫,需要掌握什么知识。本文将会对这些问题做一个解释和说明,希望可以帮助正在爬虫入门阶段的朋友。网络爬虫是捜索引擎抓取系统的重要组成部分,爬虫的主要目的是将互联网上的网页下载到本地形成一个互联网内容的镜像备份那么网络爬虫的基本结构和工作流程是什么样的呢?基本的工作流程如下:首先可以选择一部分精心挑选的种子url;将这些URL放入待抓取URL系列;从待抓取URL队列中取出待抓取在URL,解析DNS,并且得到主机的ip,并将URL对应的网页下载下来,存储进已下载网页库中。此外,将这些URL...
            12 12 1918
            分享
          •   在国内,软件测试的步骤就比较晚,其作为弱势的部分的地方一直难于改变。但另一方面软件行业的迅速发展,软件的版本升级的频度超出了人们的想像。作为软件测试也不得不跟紧这种飞速的进度。  当版本发布时,就必须要求在短时间内完成测试任务,测试人员进度靠人力的堆积变得越来越不可行,自动化测试的就显得越来越重要。国内自动化测试虽然比软件测试要晚得多,但是却从一开始声势就要大的得多,几科一时间所有的部门都在讨论自动化测试,自动化测试的未来似乎一片光明。但是几年过年过去,自动化测试的发展有点雷声大雨点小,自动化测试的现状显然没有想象的那么好。常见的原因有以下几个方面:  望而却步型:且不谈商业软件的购买成本...
            0 0 2025
            分享
          •   测试报告作为沟通测试活动结果的重要文档,其撰写效率和质量直接影响团队的决策和产品的改进。以下是三个可以显著提升测试报告效率的技巧,每个技巧均配有真实的使用场景案例。  1. 测试报告模板  概述:  侧重于模板的通用性和可定制性,使其既能够适应不同项目的需求,又能够保持报告的核心结构。创建一个测试报告模板,确保每次报告都包含关键信息,如测试目的、范围、方法、结果、问题和建议。模板的标准化有助于提高报告的一致性和可读性。  使用场景案例:  每个项目都需要定期提交测试报告。团队开发了一个通用的测试报告模板,包括以下几个部分:  - 测试摘要:快速了解测试活动的关键指标。  - 测试环境和配置...
            0 0 1005
            分享
          • 前言:前面是对http协议的补充,后面的https工作流程才是这篇帖子的重点!一、用代码构造http请求1、通过HTML中的form标签,构造出GET/POST请求> 通过input标签搭配form来使用,实现给服务器提交数据这样的功能。<form action="https://www.baidu.com" method="GET">         <input type="text" n...
            0 0 951
            分享
      • 51testing软件测试圈微信