文章图片
每个有抱负的测试人员,尤其是打算使用基于 Web 的应用程序的测试人员,都必须对 Selenium 有很好的了解。这是因为,无论何时申请有关基于 Web 的测试的工作机会,都请期待基于 Selenium 的问题。
Selenium完全用 Java 编写,是使用最广泛的自动化测试工具之一。它易于使用、简单并支持以多种编程语言编写测试脚本,包括 C#、Groovy、Java、Perl 和 Python。
Selenium常见面试题和答案合集在这里,我们收集了最热门的 Selenium 面试问题,这些问题将帮助你补充现有的 Selenium 知识,并检查你在面对一系列 Selenium 面试问题时的表现。所以,让我们直接进入它:
问题:请解释各种 Selenium 组件。答:尽管被标记为自动化测试工具,Selenium 并不是一个独立的工具。相反,它是几个工具的包,因此是一个测试套件。Selenium 套件具有以下组件:
- Selenium IDE –作为 Firefox 插件分发,Selenium IDE 用作记录和播放工具。
- Selenium Grid –允许同时跨多个平台和环境分发测试执行。
- Selenium RC –一种服务器,允许用户以所需的编程语言创建测试脚本。Selenium RC 还允许在各种 Web 浏览器中执行测试脚本。
- Selenium WebDriver –除了使用其本机兼容性进行自动化之外,还直接与 Web 浏览器通信。
- 尽管 Selenium 有一个活跃的社区支持,但没有供应商支持可用
- 没有内置的报告生成。需要使用JUnit、TestNG等第三方工具
- 无法提供条形码和验证码阅读器的测试
- 需要良好的编程语言知识
- 仅支持测试基于 Web 的应用程序。因此,不支持测试移动应用程序
- ClassName
- CSS Selector
- DOM
- ID
- LinkText
- Name
- PartialLinkText
- TagName
- XPath
如果在验证命令的情况下条件为假,则执行停止并且不会执行进一步的测试。但是,如果条件为真,则程序控制将继续执行下一个测试步骤。
另一方面,验证命令不关心条件检查的结果。无论是真还是假,程序都会继续执行,所有的测试步骤都会完成。
问题: 你对Selenium 中的XPath 有何理解?你能区分 XPath 中的“/”和“//”吗?答:XPath 是 Selenium 中的一种定位器,用于根据其 XML 路径定位 Web 元素。XML 表示可扩展标记语言,用于存储、组织和传输任意数据。与 HTML 标签非常相似,XML 将数据存储在键值对中。
由于 HTML 和 XML 都是标记语言,因此 XPath 可用于定位网页上的 HTML 元素。XPath 的基本原理是在整个网页的多个元素之间遍历,并允许它们通过其他元素的引用找到一个元素。
单斜线即'/'用于创建具有绝对路径的XPath,而双斜线即'//'用于创建具有相对路径的XPath。
在绝对路径中,创建的 XPath 将从文档节点或起始节点开始选择。但是,在相对路径中,创建的 XPath 可以从整个 Web 文档中的任何位置开始选择。
问题: 你将如何使用 WebDriver 启动浏览器?答:使用 WebDriver 启动 Google Chrome、Mozilla Firefox 和 Internet Explorer 的语法分别是,
- WebDriver driver = new FirefoxDriver();
- WebDriver driver = new ChromeDriver();
- WebDriver driver = new InternetExplorerDriver();
- isDisplayed()
boolean buttonPresence = driver.findElement(By.id(“some id”)).isDisplayed(); - isEnabled()
boolean searchIconEnabled = driver.findElement(By.id(“some id”)).isEnabled(); - isSelected()
boolean buttonSelected = driver.findElement(By.id(“some id”)).isSelected();
不允许 Selenium 核心访问来自与其启动位置不同的源的元素。引入 Selenium 远程控制是为了处理同源策略的问题。
问题: 你知道如何使用 Selenium 获取 Web 元素的文本吗?答:为了检索指定网页元素的内部文本,Selenium 提供了 get 命令。它返回一个字符串值并且不需要任何参数。Get 命令是最广泛使用的命令之一,用于验证网页上显示的错误、标签、消息等。get 命令的一般语法是:
String Text = driver.findElement(By.id(“Text”)).getText();
问题: 请列举 WebDriver 中可用的各种类型的驱动程序和等待。【热门的Selenium常见面试题和答案合集分析】答:WebDriver 支持以下驱动程序:
- AndroidDriver
- ChromeDriver
- FirefoxDriver
- HtmlUnitDriver
- InternetExplorerDriver
- IPhoneDriver
- OperaDriver
- SafariDriver
- 隐式等待 –用于在整个测试脚本的每个连续测试步骤或命令之间提供默认等待时间。因此,下一个测试步骤或命令只会在自上一个测试步骤或命令的执行完成后经过设置的默认等待时间(例如 30 秒)时执行。可应用于特定实例或多个实例。
- 显式等待 –用于暂停执行,直到出现特定条件或直到最长时间过去。仅适用于特定实例。
它们不是在脚本中硬编码定位器,而是使用对象存储库存储在一个集中位置。通常,对象存储在作为对象存储库的 Selenium 中的 Excel 表中。
Selenium常见面试题和答案合集: 请解释如何使用其文本单击超链接。答:以下命令使用 linkText() 方法查找指定元素,然后单击该元素将用户重定向到相应的网页:
driver.findElement(By.linkText(“Google”)).click();
另一个可用于相同目的的命令是:
driver.findElement(By.partialLinkText(“Goo”)).click();
在这个命令中,我们使用了 partialLinkText() 方法。上述命令根据提供的链接的子字符串 Goo 查找元素。
问题:Selenium 中 driver.close() 和 driver.quit() 命令之间最重要的区别是什么?答: close() 方法关闭 WebDriver 当前访问的窗口。该命令既不需要任何参数,也不返回任何值。
与 close() 方法不同,quit() 方法用于关闭程序打开的所有窗口。与 close() 命令一样,quit() 方法不需要任何参数,也没有任何返回值类型。
问题:如何使用 Selenium 在列表中找到多个 Web 元素?Selenium面试题解析:Selenium 提供了 WebElement 列表,用于在列表中查找多个 Web 元素。下面的代码片段演示了它的使用:
List elementList =
driver.findElements(By.xpath(“//div[
@id=‘example’]//ul//li”));
Int listSize = elementList.size();
for (int i=0;
i<
listSize;
i++)
{
serviceProviderLinks.get(i).click();
driver.navigate().back();
}
Selenium常见面试题有哪些:你能解释一下 Selenium 和 QTP 之间的区别吗?回答:
- 可用性 – Selenium 是一种开源且免费使用的测试工具。另一方面,QTP 是一种许可的商业测试工具。
- 浏览器兼容性——虽然 QTP 仅支持 Chrome、Firefox 和 Internet Explorer,但 Selenium 可以与上述以及 Opera、Safari 和其他几个一起使用。
- 对象存储库——QTP 自动创建和维护一个对象存储库。然而,这不是 Selenium 的情况,因为在使用自动化测试工具时需要创建一个对象存储库。
- 编程语言支持——QTP支持的唯一编程语言是 VB,但 Selenium 提供对多种编程语言的支持,包括 C#、Java、Perl、Python 和 Ruby。
- 测试支持——Selenium 仅提供对 Web 应用程序的测试,而 QTP 为基于 Web 和基于 Windows 的应用程序提供测试支持。
- 供应商支持 – Selenium 不提供供应商支持,而 QTP 提供同样的支持。
Alert alert = driver.switchTo().alert();
alert.accept();
共有 4 种方法可用于处理基于 Web 的弹出窗口,即:
- String getText() – 返回显示在警告框上的文本
- void accept() – 弹出窗口一出现就点击“确定”按钮
- void Dismiss() – 弹出窗口一出现就点击“取消”按钮
- void sendKeys(String stringToSend) – 在警告框中输入指定的字符串模式
- navigate().back() – 根据 Web 浏览器历史记录将用户带回上一个网页。不需要参数
- navigate().forward() – 将用户导航到 Web 浏览器历史记录中的下一个网页。不需要参数
- navigate().refresh() – 通过刷新当前网页重新加载所有 Web 元素。不需要参数
- navigate().to() – 让用户启动一个新的 Web 浏览器窗口并导航到作为参数给出的指定 URL
WebElement element = driver.findElements(By.xpath(“//div[
@id=’some id’]//ul//li”));
findElements() – 用于在当前网页中查找与指定定位器值匹配的所有元素。所有匹配的元素都将被提取并存储在 WebElements 列表中。该方法的一般语法是:
List elementList = driver.findElements(By.xpath(“//div[
@id=’some id’]//ul//li”));
问题:什么是 JUnit?解释各种 JUnit 注释。答:JUnit 是 Apache 的一个基于 Java 的测试框架,它对 Selenium 进行了补充。各种JUnit注解列举如下:
- @After – 让系统知道每次测试方法完成时都会执行此方法
- @AfterClass - 让系统知道这个方法必须在任何测试方法之后执行一次
- @Before – 让系统知道这个方法将在每次测试方法开始执行之前执行
- @BeforeClass - 让系统知道这个方法必须在任何测试方法开始执行之前执行一次
- @Ignore - 以免系统知道该方法应被忽略,即不应执行
- @Test – 让系统知道这个方法是一个测试方法。在一个测试脚本中可以有多个测试方法
- 行为驱动的开发框架——允许以易于阅读和理解的格式为不同的专业人员(包括分析师、开发人员和测试人员)自动进行功能验证。
- 数据驱动的测试框架——帮助分离测试脚本逻辑和测试数据。允许将测试数据以键值对的形式存储在一些外部数据库中。这些键用于访问和填充测试脚本中的数据。
- 关键字驱动测试框架——它是数据驱动测试框架的扩展,除了将测试数据与测试脚本分离之外,关键字驱动测试框架还将一部分测试脚本代码存储在外部数据中文件。
- 库架构测试框架——工作原理是确定正确的步骤,然后将它们组合成库下的功能。这些函数在需要时在测试脚本中调用。
- 基于模块的测试框架——将每个被测应用程序划分为多个逻辑模块和隔离模块。为每个模块创建了一个不同的测试脚本。
- 混合测试框架 -提供属于不同类型测试框架的功能。这个想法是通过一个测试工具获得各种方法的所有好处。
问题:Selenium 2.0 和 Selenium 3.0 与 Selenium 有何不同?答:Selenium 2.0 将 Selenium RC 和 WebDriver 整合为一个工具,而 Selenium 3.0 是最新版本,有 Beta 1 和 Beta 2 更新。
问题:确定 Selenium 支持的各种测试类型?答:Selenium 支持的各种测试类型包括:
- 功能性。
- 回归。
- CruiseCont.
- Hudson.
- Jenkins.
- 快速构建。
问题:Selenium 中有哪些不同类型的断言?答:Selenium 中的 Assertion 有以下三种类型:
- Assert.
- Verify.
- WaitFor.
- 它仅支持基于 Web 的应用程序。
- 不支持位图比较。
- 寻求第三方工具用于报告目的。
- 与其他商业工具(例如 HP UFT)相比,供应商支持最少。
- 在 Selenium 中维护对象具有挑战性。
问题:如何区分 Assert 和 Verify 命令?答:断言命令有助于检查元素是否在页面上。如果缺少所需元素,测试将失败并终止。验证命令有助于检查元素是否在页面上,但不会终止,但会继续执行所有命令。
问题:Selenium 的显着特点是什么?答:Selenium 的显着特点包括:
- 它支持 C#、Python、Perl、JAVA 和 PHP。
- 它可以在各种操作系统上运行,包括 Mac OS、Linux 和 Windows。
- 它可以使用 Xpath、CSS 和 DOM 轻松定位元素。
- 它的开发者社区得到了 Google 的支持。
Selenium | QTP |
它是一个开源的 | 这是一个商业工具 |
它用于测试各种基于 Web 的应用程序。 | 它用于基于 Web 的应用程序和测试客户端-服务器应用程序。 |
它支持 Linux、Mac 和 Windows 上的 Safari、Opera 和 Firefox。 | 它仅支持 Windows 上的 Internet Explorer。 |
它支持不同的编程语言,如 Python、Perl 和 Ruby。 | 它仅支持 VB 脚本。 |
- HOST。
- URL。
- 端口号。
- 浏览器。
问题:定义提升权限的浏览器?回答:提升权限的浏览器充当代理注入,允许不同的网站执行通常不允许的操作。这些浏览器允许 Selenium 核心直接写入 AUT,从而读取和写入其内容,而无需通过 Selenium RC 服务器传递整个 AUT。
问:什么是 Borland Silk 测试工具?答:Borland Silk 测试工具用于使用测试脚本语言的客户端-服务器应用程序。
问题:什么是 Selenium 测试工具?答:Selenium 测试工具用于 Web 应用程序,并且可以灵活地用于多种语言,包括 JAVA、Perl、Ruby 和其他各种语言。
问:Borland Silk 测试工具和Selenium 测试工具的主要区别是什么?答:Borland Silk Test Tool 和 Selenium Test Tool 的主要区别可以显示如下:
Borland Silk 测试工具 | Selenium测试工具 |
它不是免费的测试工具。 | 它是一个免费的测试工具。 |
它必须手动应用。 | 它是一个自动化工具。 |
它仅支持 Internet Explorer 和 Firefox。 | 它支持各种浏览器,包括 Internet Explorer、Firefox、Safari、Opera 和其他各种浏览器。 |
它专门用于测试脚本语言。 | 它可以用于测试各种语言的程序。 |
它可以应用于客户端-服务器应用程序。 | 它只能应用于 Web 应用程序。 |
问题:Selenium WebDriver 的另一个名字是什么?答:Selenium WebDriver 的另一个流行名称是 Selenium 2.0
问题:与 Selenium 1.0 相比,0f Selenium WebDriver 有哪些独特的特性?答:Selenium WebDriver 与 Selenium 1.0 的不同之处包括:
- 它有助于处理多个框架、浏览器、窗口、警报和弹出窗口。
- 它有助于页面内导航。
- 它在页面上提供了拖放功能。
- 它应用了基于 Ajax 的用户界面 (UI) 元素。
- 它提供了多种浏览器测试工具,有助于改进 Selenium 1.0 早期不支持的浏览器的功能
问题:我们可以存储一个值,它是一个文本框吗?答:是的,我们可以存储一个值,它是一个使用 Web Driver 的文本框。我们可以应用 driver.findElement(By.id(“your Textbox”)).sendKeys(“your keyword”);
问题:我们可以在帧之间切换吗?答:是的,我们可以使用 WebDrivers 在帧之间切换,它可以接受任何参数。
Selenium常见面试题有哪些:切换时可以考虑的三个参数是什么?答:Switching 可以考虑的三个参数包括:
- 数字:这将通过从零开始的索引选择数字。
- 名称或 ID:这将按名称或 ID选择框架。
- 先前找到的 WebElement:这将有助于使用先前找到的 WebElement 来选择框架。
- TimeoutException。
- WebDriverException。
- NoAlertPresentException。
- NoSuchElementException。
- NoSuchWindowException。
Selenium常见面试题和答案合集结论好吧,这总结了最重要的 Selenium 面试问题和答案。仔细阅读这份清单肯定会帮助你为即将到来的 Selenium 面试做好准备。
你是否正在寻找更多 Selenium 面试问题?这是一门很好的课程,可以帮助你为即将到来的 Selenium 测试面试问题做准备:Selenium 自动化和敏捷面试的 QA 准备。
推荐阅读
- React与Vue差异比较(有什么区别(哪个更好?))
- 本文教你win1064位旗舰版系统如何更新升级
- 本文教你win1064位旗舰版系统一键激活密钥及激活办法
- 一键激活Ghost win10系统64位工具下载
- 本文教你Ghost win10系统64位旗舰版密钥激活码大全
- 安装系统 U盘重装系统windows1064位旗舰版图文图文详细教程
- 微软官方原版win10系统64位下载
- 本文教你windows10系统64位旗舰版删除激活工具的办法
- 系统之家ghost win10 32位系统自制步骤