29 Selenium 常见面试题及答案

软件应用程序在发布供最终消费者使用之前会经历多个阶段。

测试是 SDLC(软件开发生命周期)中最重要的部分之一,因为它可以识别错误并检查应用程序是否按预期工作。

过去,软件测试人员使用手动测试技术。 然而,手动测试非常耗时,并且还会带来其他各种挑战。 Selenium 的创建是为了自动化软件测试。

Selenium 现在是市场领导者,大多数软件测试人员已经在使用它。 如果您想找到一份软件测试员的工作,用常见的 selenium 面试问题武装自己将使您比其他求职者更具竞争优势。

以下是您可能会遇到的 Selenium 面试问题和答案:

什么是自动化测试?

简而言之,自动化测试是使用自动化测试套件或无需人工参与,使编写和执行软件测试的过程自动化的过程。 自动化测试允许测试人员使用单独的工具重复执行测试任务。

自动化测试有什么好处?

  • 节省时间和金钱。 如果您必须支付手动测试人员的费用,软件测试可能会很昂贵。 从长远来看,自动化测试可以更便宜。
  • 促进代码的可重用性。 您可以设置一次测试,然后重复执行。
  • 减少人为错误,提高准确性。
  • 非常适合大规模应用。 通过手动测试可以很简单地测试小型应用程序。 然而,随着应用程序的扩展,自动化测试工具包将随着应用程序的扩展而派上用场。
  什么是 ISO 文件? 如何打开 ISO 映像文件

什么是硒?

Selenium 是 Jason Huggins 于 2004 年开发的开源且免费的基于 Web UI 的自动化测试套件。强大社区的存在使 Selenium 成为最受欢迎的自动化软件测试套件之一。 各种浏览器和平台都支持 Selenium Suite。

硒有哪些不同形式?

Selenium 不仅仅是一个测试工具,而是一个包含多个工具的套件。 以下是硒的不同形式;

  • Selenium 集成开发环境 (IDE)
  • Selenium WebDriver
  • 硒遥控器(RC)
  • 硒网格

Selenium 支持哪些编程语言?

  • Python
  • 爪哇
  • C-升号
  • JavaScript
  • 红宝石
  • PHP
  • Perl

Selenium 支持哪些测试类型?

什么是 Selenium WebDriver?

Selenium WebDriver 的任务是与网络浏览器通信。 该工具还依靠其本机兼容性来自动执行各种任务。

什么是硒集成开发环境?

Selenium IDE 是一个 Firefox 插件,充当录制和回放工具。 这个插件是作为加速创建自动化脚本的解决方案而创建的。

什么是硒网格?

该工具允许用户同时将测试执行分发到多个环境和平台。

什么是 selenium RC(远程控制)?

RC 是一种工具,允许某人以他们想要的编程语言创建测试脚本。 该工具还允许用户在各种浏览器中执行测试脚本。

Selenese 是什么意思?

Selenium IDE 有一种称为 Selenese 的语言,用于编写 Selenium 命令。 这些命令帮助 Selenium 了解要执行的操作或动作。

Selenese 有哪些类型?

  • 动作。 这些是操纵应用程序状态的命令。 “键入此框”和“单击此链接”是操作的示例。
  • 配件。 这些命令应用程序的状态并将结果存储在变量中。
  • 断言。 这些命令使测试人员能够验证应用程序的状态。

在 Selenium 中定位元素的方法有哪些?

  • ID
  • 班级名称
  • 姓名
  • 标签名
  • 链接文本
  • 部分链接文本
  • Xpath
  • CSS 选择器
  • DOM
  如何在 Chromebook 上免费编辑 PDF 文件

什么是 XPath?

XPath 根据其可扩展标记语言路径定位 Web 元素。 XML 存储组织和传输任意数据。

XPath 中的“/”和“//”。 有什么区别?

“/”或单斜杠创建具有绝对路径的 XPath。 因此,创建 XPath 以从起始节点/文档节点开始选择。

“//”或双斜杠用于创建具有相对路径的 XPath。 因此,创建的 XPath 从文档中的任何位置开始选择。

什么是绝对 XPath?

绝对 XPath 以单斜杠“/”开头。 这样的路径从根到我们要识别的元素之间有一条完整的路径。

findElement() 和 findElements() 的区别

  • findElements():使用给定的定位机制查找当前页面上的所有元素,并返回所有网页元素的列表。
  • findElement():使用给定的定位机制在当前页面中找到第一个元素,并只返回一个 web 元素。

Selenium 中使用了哪些类型的注解?

  • 之前套件
  • 测试前
  • 课前
  • 之前方法
  • 测试用例
  • 方法后
  • 下课以后
  • 测试后
  • 后套件

Selenium 中的断言是什么?

断言确定应用程序是否按预期工作。 如果断言失败,则测试用例失败,并且执行停止。

什么是断言和验证命令?

  • 断言:如果断言条件为真,程序将继续执行下一个测试步骤。 但是,如果条件为假,则执行停止,并且不会进行其他测试。
  • 验证:无论验证条件为真还是假,测试都会继续执行。

什么是同源策略,Selenium 如何处理它?

同源策略可以描述为一种安全机制,它限制特定源加载的脚本或文档如何与来自另一个源的资源进行交互。 这种方法有助于隔离恶意脚本。

Selenium 使用代理注入的方式来实现同源策略。 在此设置中,Selenium 服务器将充当被测应用程序和浏览器之间的客户端配置的 HTTP 代理。 此代理注入将通过虚构的 URL 掩盖 AUT。

Selenium IDE 中的暂停功能是什么?

暂停是一个等待 Selenium IDE 命令,它会延迟指定时间执行自动化测试。 等待以毫秒为单位表示,这意味着如果要等待 3 秒,则应输入 3000。

为什么 Selenium IDE 测试会失败?

  • 异步网站。 Selenium 测试是按特定顺序创建的。 但是,有些网站是基于异步架构的,有时响应是不按顺序的。
  • 超时。 Selenium 在等待组件加载时可能会失败。 可以使用“等待”来处理此类错误。
  • 错误。 Selenium 一直在改进。 但是,您可能偶尔会遇到一些错误,这可能会导致测试失败。
  • 对源代码的小改动。 如果检查了对定位器的更改,则针对该定位器的所有测试都可能失败。
  如何修复 Apple Watch 不振动警报和通知

什么是 TestNG,它有哪些特性?

TestNG 是一个受 JUnit 和 NUnit 启发的测试自动化框架。 NG,下一代,是一个开源和免费的工具。

这些是 TestNG 的一些特性;

  • 有不同类型的断言。
  • 允许用户并行运行测试。
  • 您可以使用“dependsOnMethods”和“dependsOnGroups”属性使测试相互依赖。
  • 执行数据驱动的测试。
  • 您可以对各种测试进行分组。

隐式等待和显式等待有什么区别?

  • 隐式等待告诉 WebDriver 在抛出异常之前等待一段时间。 默认值为 0,一旦设置了时间,WebDriver 将等待时间到时抛出异常。
  • Explicit Wait 告诉 WebDriver 在抛出“ElementNotVisibleException”异常之前等待特定条件或 ExpectedConditions。 Explicit Wait 是一种仅适用于指定元素的“智能”等待。

什么是对象存储库?

对象存储库是自动化 GUI 测试脚本中键值对的集合,可减轻测试脚本维护的负担。 这种情况下的关键是标识对象的逻辑名称以及带有标识屏幕上对象的唯一属性的值。

它也是存储和管理所有数据的中心位置。

在 Selenium 网络驱动程序中,您会遇到哪些不同的异常?

异常是在程序或软件应用程序执行期间可能发生的前所未有或不寻常的事件。 它也可以被描述为意外事件或结果的运行时错误,它扰乱或影响了通常的程序流程。

这些是 Selenium Web Driver 中的主要例外;

  • NoSuchWindowException。 WebDriver 正在尝试切换到无效(不可用)窗口。
  • NoSuchElementException。 当元素不可访问时发生。
  • NoAlertPresentException。 当您尝试切换到不显示警报时会发生此异常。
  • 超时异常。 特定命令未在指定时间内完成。
  • 元素不可见异常。
  • ElementNotSelectableException。 当元素被禁用(无法选择或单击)时会发生此类异常,尽管该元素在 DOM 上可用。
  • SessionNotFoundException。 在这种情况下,WebDriver 在关闭浏览器后立即运行。

列出不同类型的定位器

  • ID
  • 姓名
  • 班级名称
  • 标签名
  • 链接文本
  • 部分链接文本
  • CSS 选择器
  • 路径

什么是断点和起点?

  • Start Points 显示代码执行的起点。 起点可用于从代码中间或断点运行测试脚本。
  • 断点用于停止代码执行。 断点用于验证您的代码是否按预期工作。

包起来

以上是您在下一次测试自动化工程工作面试中可能会遇到的一些 Selenium 面试问题。 在申请测试自动化工程师角色之前,确保您具备必要的技能。

喜欢阅读这篇文章吗? 与世界分享怎么样?