2025 年排名前 100 的 Selenium 面试问答
本指南包含所有适合应届毕业生的 Selenium 基本面试问题,以及适合有经验的候选人的 Selenium 面试问题和答案,以帮助他们为面试做准备。
适合应届毕业生的基本 Selenium 面试问题
1) 什么是 Selenium?它由什么组成?
Selenium 是一套用于自动化网络测试的工具。它由以下部分组成:
- Selenium IDE(集成开发环境):它是一个用于录制和回放的工具。它是一个 Firefox 插件。
- WebDriver 和 RC:它为 Java、.NET、PHP 等各种语言提供 API。WebDriver 和 RC 与大多数浏览器兼容。
- Grid:借助 Grid,您可以将测试分发到多台机器上,从而并行运行测试,这有助于缩短运行浏览器测试套件所需的时间。
2) 什么是 Selenium 2.0?
Web测试工具 Selenium RC 和 WebDriver 在 Selenium 2.0 中整合为单个工具。
什么是 Selenium 2.0
3) 提一下什么是 Selenium 3.0?
Selenium 3.0 是 Selenium 的最新版本。它已经发布了 2 个 Selenium 3.0 的测试版,其中包含以下一些更改:
以下是 Selenium 3.0 中新增的一些功能:
测试版 1 更新 | 测试版 2 更新(仅适用于 Java) |
---|---|
最低Java 版本现在是 8+。 | 系统属性 `webdriver.gecko.driver` 现在强制服务器处于 marionette 或旧版 Firefox 驱动程序模式,忽略任何相关的所需功能。 |
它将通过 Mozilla 的 geckodriver 支持 Firefox。 | 当未指定 `-browser` 时,Grid 修复了注册时的 NPE。 |
|
更新所有绑定中的 GeckoDriver –port 参数。 |
4) 您将如何使用 Selenium 查找元素?
在 Selenium 中,网页中的每个对象或控件都被称为元素,有不同的方法可以在网页中查找元素,它们是:
- ID
- 名称
- 标签
- 属性
- CSS
- 链接文本
- 部分链接文本
- Xpath 等
5) 列出 Selenium 支持的测试类型?
Selenium 可用于基于 Web 的应用程序测试。
支持的测试类型是:
a) 功能测试,了解更多关于功能测试的信息。
b) 回归测试
对于发布后验证,结合持续集成,可以使用以下自动化工具:
a) Jenkins
b) Hudson
c) Quick Build
d) CruiseCont
6) 解释 Selenium 中的断言是什么以及断言的类型?
断言用作验证点。它验证应用程序的状态是否符合预期。断言的类型有“assert”、“verify”和“waitFor”。
7) 提一下 X-path 的用途是什么?
X-Path 用于查找网页中的 WebElement。它在识别动态元素方面也很有用。
请参阅有关 XPath 的完整指南
8) 解释 X-path 中单斜杠和双斜杠的区别?
单斜杠“/”
- 单斜杠 ( / ) 从文档节点开始选择
- 它允许您创建“绝对”路径表达式
双斜杠“//”
- 双斜杠 ( // ) 从文档中任何位置开始匹配选择
- 它能够创建“相对”路径表达式
9) 列出 Selenium 的技术挑战?
Selenium 的技术挑战是:
- Selenium 仅支持基于 Web 的应用程序。
- 它不支持位图比较。
- 任何报告相关功能都必须依赖第三方工具。
- 与 HP UFT 等商业工具相比,该工具没有供应商支持。
- 由于 Selenium 中没有对象库概念,对象的维护变得困难。
10) `type keys` 和 `type` 命令有什么区别?
在大多数情况下,TypeKeys() 将触发JavaScript事件,而 .type() 则不会。TypeKey 使用 JavaScript 填充 value 属性,而 .typeKeys() 模拟实际用户输入。
11) `verify` 和 `assert` 命令有什么区别?
Assert(断言):Assert 允许检查页面上是否存在某个元素。如果断言的元素不可用,测试将在失败的步骤处停止。换句话说,测试将在检查失败的点终止。
Verify(验证):Verify 命令将检查页面上是否存在该元素,如果不存在,则测试将继续执行。在验证中,即使任何测试失败,所有命令都将保证运行。
12) 什么是 JUnit 注解,有哪些不同类型的有用注解?
在 JAVA 中,可以将一种特殊形式的语法元数据添加到 Java 源代码中,这被称为注解。变量、参数、包、方法和类都可以被注解,其中一些有用的 Junit 注解包括:
- 测试
- Before
- After
- Ignore
- BeforeClass
- AfterClass
- RunWith
13) 在使用 `click` 命令时,您可以使用屏幕坐标吗?
要点击元素的特定部分,您需要使用 `clickAt` 命令。`clickAt` 命令接受元素定位器和 x, y 坐标作为参数:
clickAt (locator, cordString)
14) Selenium 有哪些优点?
- 它支持 C#、PHP、Java、Perl、Python。
- 它支持不同的操作系统,如 Windows、Linux 和 Mac OS。
- 它具有强大的元素定位方法(Xpath、DOM、CSS)。
- 它拥有由 Google 支持的高度活跃的开发者社区。
15) 为什么测试人员应该选择 Selenium 而不是 QTP?
Selenium 比 QTP 更受欢迎,原因如下:
- Selenium 是开源的,而 QTP 是商业工具。
- Selenium 专门用于测试基于 Web 的应用程序,而 QTP 也可以用于测试客户端-服务器应用程序。
- Selenium 支持 Firefox、IE、Opera、Safari 等操作系统,如 Windows、Mac、Linux 等,而 QTP 仅限于 Windows 上的 Internet Explorer。
- Selenium 支持 Ruby、Perl、Python 等多种编程语言,而 QTP 仅支持 VB 脚本。
针对 3/5/10 年经验的高级 Selenium 自动化测试面试问题
以下是经验丰富的候选人的热门 Selenium 面试问题。
16) 您必须在 Selenium 中传递哪四个参数?
您必须在 Selenium 中传递的四个参数是:
- 主机
- 端口号
- 浏览器
- URL
17) `setSpeed()` 和 `sleep()` 方法有什么区别?
两者都会减慢执行速度。
Thread.sleep () :
它将停止当前(Java)线程指定的时间段。它只执行一次。
- 它接受一个整数格式的参数。
示例:`thread.sleep(2000)` - 它将等待 2 秒。
- 它只在给定 `sleep` 命令时等待一次。
SetSpeed () :
在指定的时间内,它将停止每个 Selenium 命令的执行。
- 它接受一个整数格式的参数。
示例:`selenium.setSpeed(“2000”)` - 它将等待 2 秒。
- 在 `setSpeed` 延迟指定的毫秒数后运行每个命令。
此命令适用于演示目的,或者如果您正在使用慢速 Web 应用程序。
18) 什么是同源策略?如何避免同源策略?
为了安全原因引入了 “同源策略”,它确保您的网站内容永远不会被来自其他网站的脚本访问。根据该策略,浏览器中加载的任何代码只能在该网站的域内操作。
为了避免“同源策略”,使用代理注入方法,在代理注入模式下,Selenium 服务器充当配置为 HTTP 代理的客户端,位于浏览器和被测应用程序之间,然后将 AUT 隐藏在虚构的 URL 下。
19) 什么是高权限浏览器?
提升权限的目的是类似于代理注入,允许网站执行通常不允许的操作。主要区别在于浏览器以一种称为提升权限的特殊模式启动。通过使用这些浏览器模式,Selenium 核心可以直接打开 AUT,并且可以读取/写入其内容,而无需通过 Selenium RC 服务器传输整个 AUT。
20) 如何使用 Selenium “提交”表单?
您可以使用元素的“submit”方法提交表单-
element.submit();
或者,您可以使用元素上的 click 方法来提交表单。
21) TestNG 的特点是什么,列出 TestNG 中使其更有效的一些功能?
TestNG 是一个基于 JUnit 和 NUnit 的测试框架,旨在简化广泛的测试需求,从 单元测试 到 集成测试。使其成为高效测试框架的功能包括:
- 支持注解
- 支持数据驱动测试
- 灵活的测试配置
- 重新执行失败测试用例的能力
22) 提一下隐式等待和显式等待的区别?
隐式等待:为所有后续的 Web 元素搜索设置超时。在指定的时间内,它会一次又一次地尝试查找元素,直到抛出 NoSuchElementException。它等待元素出现。
显式等待:它是一次性的,用于特定的搜索。
23) 如果没有框架 ID 也没有框架名称,在框架中编写脚本时应该考虑哪个属性?
您可以使用……driver.findElements(By.xpath(“//iframe”))……
这将返回框架列表。
您需要切换到每个框架并搜索我们想要的定位器。
然后中断循环。
24) 解释 `find elements()` 和 `find element()` 有什么区别?
find element ()
它使用给定的“定位机制”查找当前页面中的第一个元素。它返回一个单独的 WebElement。
findElements ():使用给定的“定位机制”查找当前页面中的所有元素。它返回一个 Web 元素列表。
25) 解释与 Selenium 相关的 JUnits 注解是什么?
与 Selenium 链接的 JUnit 注解是:
- @Before public void method() – 它将在每个测试之前执行 method(),此方法可以准备测试。
- @Test public void method() – 注解 @Test 标识此方法为测试方法环境。
- @After public void method() – 要在此注解之前执行方法,测试方法必须以 test@Before 开头。
26) 解释什么是数据驱动框架和关键字驱动框架?
数据驱动框架:在此框架中,测试数据是独立的,并保存在测试脚本之外,而测试用例逻辑存在于测试脚本中。测试数据从外部文件(Excel 文件)中读取,并加载到测试脚本内的变量中。变量既用于输入值,也用于验证值。
关键字驱动框架:关键字驱动框架需要开发数据表和关键字,这些都独立于测试自动化。在关键字驱动测试中,被测应用程序的功能以及每个测试的逐步说明都记录在一个表中。
27) 解释如何登录任何网站(如果它显示任何用于密码和用户名的身份验证弹出窗口)?
将用户名和密码与 URL 一起传递。
- 语法 - http://用户名:密码@url
- 例如 - http://creyate:tom@www.gmail.com
28) 解释如何使用 Selenium 2.0 断言网页文本?
WebElement el = driver.findElement(By.id(“ElementID”))
//从元素获取测试并存储在文本变量中
String text = el.getText();
//断言与预期文本匹配
Assert.assertEquals(“Element Text”, text);
29) 解释 Borland Silk 和 Selenium 的区别?
Silk 测试工具 | Selenium 测试工具 |
---|---|
Borland Silk Test 不是一个免费的测试工具 | Selenium 是一个完全免费的测试自动化工具 |
Silk Test 只支持 Internet Explorer 和 Firefox | Selenium 支持多种浏览器,如 Internet Explorer、Firefox、Safari、Opera 等 |
Silk Test 使用测试脚本语言 | Selenium 套件可以灵活使用 Java、Ruby、Perl 等多种语言 |
Silk Test 可用于客户端服务器应用程序 | Selenium 只能用于 Web 应用程序 |
30) 什么是对象库?
对象库是任何 UI 自动化中必不可少的实体,它允许测试人员将脚本中使用的所有对象存储在一个或多个集中位置,而不是散布在整个测试脚本中。
31) 解释 Selenium Grid 如何工作?
Selenium Grid 将测试发送到 hub。这些测试被重定向到 Selenium WebDriver,后者启动浏览器并运行测试。通过整个测试套件,它允许并行运行测试。
32) 我们可以使用 Selenium Grid 进行性能测试吗?
是的。但不如 Loadrunner 等专用性能测试工具有效。
33) 列出 WebDriver 相对于 Selenium Server 的优点?
- 如果您使用的是 Selenium-WebDriver,则不需要 Selenium Server,因为它使用的是完全不同的技术。
- Selenium Server 提供 Selenium RC 功能,用于 Selenium 1.0 的向后兼容性。
- Selenium WebDriver 使用每个浏览器对自动化的原生支持直接调用浏览器,而 Selenium RC 需要 Selenium 服务器将 Javascript 注入浏览器。
34) 提一下 Selenium WebDriver 或 Selenium 2.0 的功能是什么?
在需要改进支持以下方面时应使用 WebDriver:
- 处理多个框架、弹出窗口、多个浏览器窗口和警报。
- 页面导航和拖放。
- 基于 Ajax 的 UI 元素。
- 多浏览器测试,包括 Selenium 1.0 不太支持的浏览器改进功能。
35) 在 WebDriver 中注入功能以在 WebDriver 不支持的浏览器上执行测试时,可能会遇到什么限制?
注入功能的主要限制是“findElement”命令可能无法按预期工作。
36) 解释如何使用 Selenium WebDriver 在页面中查找损坏的图像?
要使用 Selenium WebDriver 查找页面中的损坏图像,可以执行以下操作:
- 获取 XPath 并使用标签名获取页面中的所有链接。
- 在页面中点击每个链接。
- 在目标页面标题中查找 404/500。
37) 解释如何处理 WebDriver 中的颜色?
要处理 WebDriver 中的颜色,您可以使用:
使用 getCssValue(arg0) 函数,通过发送“color”字符串作为参数来获取颜色。
38) 如何使用 WebDriver 存储文本框中的值?
您可以使用以下命令通过 Web 驱动程序存储文本框中的值:
driver.findElement(By.id(“your Textbox”)).sendKeys(“your keyword”);
39) 解释如何切换框架?
要在帧之间切换,webdrivers [ driver.switchTo().frame() ] 方法采用以下三种可能的参数之一:
- 一个数字:它通过其(基于零的)索引选择数字。
- 名称或 ID:通过其名称或 ID 选择帧。
- 先前找到的 WebElement:使用其先前定位的 WebElement 选择帧。
40) 提一下您在 Selenium WebDriver 中遇到的 5 种不同异常?
您在 Selenium Web 驱动程序中遇到的 5 种不同异常是:
- WebDriverException
- NoAlertPresentException
- NoSuchWindowException
- NoSuchElementException
- TimeoutException
41) 解释如何使用 WebDriver 执行双击?
您可以通过以下方式执行双击:
- 语法 - Actions act = new Actions (driver);
- act.doubleClick(webelement);
42) 您将如何使用 Selenium 上传文件?
您可以使用“type”命令在文件上传的输入框中输入文件。然后,您必须使用 JAVA 中的“Robot”类才能使文件上传工作。
43) 哪种 WebDriver 实现速度最快?
HTMLUnit 驱动程序实现最快,HTMLUnitDriver 不在浏览器上执行测试,而是执行纯 HTTP 请求,这比启动浏览器并执行测试快得多。
44) 解释如何使用 Selenium 2.0 处理框架?
要控制 HTML 框架,可以使用“SwitchTo”框架方法:
driver.switchTo().frame(“frameName”);
要指定一个帧,可以使用索引号。
driver.switchTo().frame(“parentFrame.4.frameName”);
这将控制名为“frameName”的第 4 个子帧(名为“parentFrame”)。
45) `getWindowhandles()` 和 `getwindowhandle()` 有什么区别?
getwindowhandles():
用于获取所有已打开浏览器的地址,其返回类型为 Set
getwindowhandle():
用于获取当前浏览器(控制所在的浏览器)的地址,返回类型为字符串。
46) 解释如何从框架切换回来?
要从框架切换回来,请使用 `defaultContent()` 方法。
语法-driver.switchTo().defaultContent();
47) 列出不同类型的定位器?
不同类型的定位器是:
- By.id()
- By.name()
- By.tagName()
- By.className()
- By.linkText()
- By.partialLinkText()
- By.xpath
- By.cssSelector()
48) 用于将变量值显示到输出控制台或日志中的命令是什么?
- 为了显示一个常量字符串,可以使用命令 `echo <常量字符串>`。
- 为了显示变量的值,可以使用 `echo ${变量名}>` 这样的命令。
上面使用的是 PHP。如果您使用的是 Java,请将 `echo` 替换为 `System.out.println`。
49) 解释如何使用 Selenium 的恢复场景?
恢复场景取决于您使用的编程语言。如果您使用的是 Java,那么您可以使用异常处理来解决这个问题。在您的 Selenium WebDriver Java 测试中使用“Try Catch Block”。
50) 解释如何在测试脚本中迭代选项?
要在测试脚本中遍历选项,您可以使用编程语言的循环功能,例如,要在文本框中键入不同的测试数据,您可以在 Java 中使用“for”循环。
// 数组中的测试数据集合
String[ ] testData = { “test1” , “test2” , “test3” } ;
// 遍历每个测试数据
For (string s: test data) { selenium.type ( “elementLocator”, testData) ; }
51) 如何在混合框架中使用 TestNG 准备自定义 HTML 报告?
有三种方法:
- Junit:借助 ANT。
- TestNG:使用内置的 default.html 获取 HTML 报告。还有 ANT、Selenium、TestNG 组合的 XST 报告。
- 使用我们自己的自定义报告,使用 XSL jar 将 XML 内容转换为 HTML。
52) 如何从测试脚本创建 HTML 测试报告?
创建 HTML 测试报告有三种方法:
- TestNG:使用内置的 default.html 获取 HTML 报告。还有 ANT、Selenium、TestNG 组合的 XLST 报告。
- JUnit:借助 ANT。
- 使用我们自己的自定义报告,使用 XSL jar 将 XML 内容转换为 HTML。
53) 解释如何在 Selenium IDE 中插入断点?
在 Selenium IDE 中插入断点:
- 右键单击 Selenium IDE 中的命令,选择“切换断点”。
- 在键盘上按下“B”,然后选择 Selenium IDE 中的命令。
- 可以在 Selenium IDE 中设置多个断点。
54) 解释如何在 Selenium IDE 中调试测试?
- 从您希望逐步执行测试的位置插入断点。
- 运行测试用例。
- 在给定断点处,执行将暂停。
- 要继续执行下一条语句,请单击蓝色按钮。
- 单击“运行”按钮以一次执行所有命令。
55) 什么是 Selenese 以及 Selenese 的类型?
Selenese 是 Selenium 的一组命令,用于运行测试。
Selenese 有三种类型:
- 操作 (Actions):用于执行操作以及与目标元素的交互。
- 断言 (Assertions):用作检查点。
- 访问器 (Accessors):用于将值存储在变量中。
56) 解释 Selenium IDE 的局限性是什么?
Selenium IDE 的局限性:
- 不支持异常处理。
- Selenium IDE 仅使用 HTML 语言。
- 无法从外部数据库读取数据。
- 无法从 .txt、.xls 等外部文件读取数据。
- 不支持条件或分支语句(如 if、else、select 语句)的执行。
57) Selenium IDE 中有哪些两种视图模式?
Selenium IDE 可以作为弹出窗口或侧边栏打开。
58) 在 Selenium IDE 中,可以使用哪些元素定位器来定位网页上的元素?
在 Selenium 中,主要使用 4 种定位器:
- X-path 定位器
- Css 定位器
- Html id
- Html name
59) 在 Selenium IDE 中,如何为测试数据生成随机数和日期?
在 Selenium IDE 中,您可以使用 JavaScript 生成随机数。
type css=input#s javascript{Math.random()}
而且对于
type css=input#s javascript{new Date()}
60) 如何将任何 Selenium IDE 测试从 Selenese 转换为另一种语言?
您可以使用 Selenium IDE 的格式选项将测试转换为另一种编程语言。
61) 使用 Selenium IDE 是否可以从特定的 HTML 表格单元格获取数据?
您可以使用“storeTable”命令。
示例:从 HTML 表格的单元格 0,2 中存储文本。
storeTable Css=#table 0.2 textFromCell
62) 解释什么可能导致 Selenium IDE 测试失败?
- 当定位器发生变化,Selenium IDE 无法定位元素时。
- 当 Selenium IDE 等待访问的元素未出现在网页上,并且操作超时时。
- 当 Selenium IDE 尝试访问的元素未创建时。
63) 解释如何在 Selenium IDE 中调试测试?
- 从您希望逐步执行的位置插入断点。
- 运行测试用例。
- 在给定断点处,执行将暂停。
- 要继续执行下一步,请单击蓝色按钮。
- 要一次运行所有命令,请单击运行按钮。
64) 如何从 Selenium IDE 执行单行代码?
从 Selenium IDE 执行单行命令有两种方式:
- 右键单击 Selenium IDE 中的命令,选择“执行此命令”。
- 在 Selenium IDE 中选择命令后,按下键盘上的“X”键。
65) 在 Selenium IDE 中,源代码视图以什么格式显示您的脚本?
在 Selenium IDE 中,源视图以 XML 格式显示您的脚本。
66) 解释如何在 Selenium IDE 中插入起始点?
Selenium IDE 可以通过两种方式设置:
- 在键盘上按下“S”键,然后选择 Selenium IDE 中的命令。
- 在 Selenium IDE 中右键单击命令,然后选择“设置/清除起始点”。
67) 如果您编写了自己的元素定位器,您将如何测试它?
要测试定位器,可以使用 Selenium IDE 的“查找按钮”,点击它后,如果您的元素定位器正确,您将看到屏幕上突出显示一个元素,否则将显示错误消息。
68) 什么是正则表达式?如何在 Selenium 中使用正则表达式?
正则表达式是一种特殊的文本字符串,用于描述搜索模式。在 Selenium IDE 中,正则表达式可以与关键字 regexp: 一起使用,作为值的前缀,并且需要包含预期值的模式。
69) 什么是核心扩展?
如果您想“扩展”Selenium 函数库提供的默认功能,您可以创建一个核心扩展。它们也称为“用户扩展”。您甚至可以下载由其他 Selenium 爱好者创建的现成核心扩展。
70) 如何在 Selenium 中处理多个窗口?
我们可以使用命令 `selectWindow` 在窗口之间切换。此命令使用窗口的标题来识别要切换到哪个窗口。
71) 如何验证网页元素的特定位置?
您可以使用 `verifyElementPositionLeft` 和 `verifyElementPositionTop`。它们分别对元素相对于页面左侧和顶部的像素位置进行比较。
72) 如何检索警报框中的消息?
您可以使用 `storeAlert` 命令,该命令将获取警报弹出窗口的消息并将其存储在变量中。
73) 什么是 Selenium RC (Remote Control)?
Selenium IDE 在浏览器支持和语言支持方面存在局限性。通过使用 Selenium RC,可以消除这些局限性。
- Selenium RC 用于在不同平台和不同网络浏览器上使用 Java、C#、Perl、Python 等语言自动化网络应用程序。
- Selenium RC 是基于 Java 的,可以使用任何语言与 Web 应用程序进行交互。
- 使用服务器,您可以绕过限制并针对任何 Web 应用程序运行您的自动化脚本。
74) 为什么要使用 Selenium RC?
Selenium IDE 不直接支持许多功能,如条件语句、迭代、测试结果日志和报告、意外错误处理等等,因为 IDE 只支持 HTML 语言。为了处理这些问题,使用了 Selenium RC,它支持 Perl、Ruby、Python、PHP 等语言,我们可以使用这些语言编写程序来解决 IDE 问题。
75) 解释 WebDriver 和 RC 的主要区别是什么?
Selenium RC 和 Webdriver 的主要区别在于,Selenium RC 在页面加载时将 JavaScript 函数注入浏览器。另一方面,Selenium Webdriver 使用浏览器内置的自动化支持来驱动浏览器。
76) RC 的优点是什么?
RC 的优点是:
- 可以从 .xls、.txt 等文件中读取或写入数据。
- 它可以处理动态对象和基于 Ajax 的 UI 元素。
- 可以使用循环和条件来获得更好的性能和灵活性。
- 支持多种编程语言和操作系统。
- 对于任何支持 JAVA 脚本的浏览器,都可以使用 Selenium RC。
77) 解释什么是框架以及 RC 中有哪些框架?
框架是库和类的集合,当测试人员需要自动化测试用例时,它们很有用。NUnit、JUnit、TestNG、Bromine、RSpec、unittest 是 RC 中可用的一些框架。
78) 如何在 RC 中处理弹出窗口?
在 RC 中处理弹出窗口时,使用 `selectWindow` 方法选择弹出窗口,`windowFocus` 方法将控制权从当前窗口转移到弹出窗口,并根据脚本执行操作。
79) 使用 Selenium RC 的技术限制是什么?
除了 JS 的“同源策略”限制外,Selenium 还受到限制,无法执行浏览器之外的任何操作。
80) 在没有 Selenium Grid 的情况下,我们可以使用 Selenium RC 在一个操作系统上驱动两个不同浏览器的测试吗?
是的,当您不使用 JAVA 测试框架时,这是可能的。如果您使用 Selenium 的 Java 客户端驱动程序而不是 Java 测试框架,那么 TestNG 允许您这样做。通过使用“parallel=test”属性,您可以设置并行执行的测试,并可以定义两个不同的测试,每个测试使用不同的浏览器。
81) 为什么要在 Selenium RC 中使用 TestNG?
如果您希望在不同的服务器和客户端平台上实现完全自动化,您需要一种从命令行进程调用测试的方法,提供告诉你发生了什么的报告,以及创建测试套件的灵活性。TestNG 提供了这种灵活性。
82) 解释如何捕获 Selenium Server 中的服务器端日志?
要捕获 Selenium Server 中的服务器端日志,您可以使用以下命令:
java –jar .jar –log selenium.log
83) 除了默认端口 4444 之外,如何运行 Selenium Server?
您可以在 java-jar selenium-server.jar-port 上运行 Selenium 服务器,而不是其默认端口。
84) Selenium Grid Hub 如何与 RC 从属机器保持联系?
在预设时间,Selenium Grid Hub 会持续轮询所有 RC 从属机器,以确保其可用于测试。决定参数称为“remoteControlPollingIntervalSeconds”,并在“grid_configuration.yml”文件中定义。
85) 如何使用 Selenium 处理网络延迟?
要处理网络延迟,可以使用 `driver.manage.pageloadingtime` 来处理网络延迟。
86) 用于在文本框中输入值的命令是什么?
要向文本框中输入值,我们可以使用命令 sendkeys()。
87) 如何使用 Selenium 识别对象?
要使用 Selenium 识别对象,您可以使用:
isElementPresent(String locator)
isElementPresent 接受一个定位器作为参数,如果找到,则返回布尔值。
88) 在 Selenium 中,断点和起始点是什么?
- 断点:当您在代码中实现断点时,执行将在此处停止。这有助于您验证代码是否按预期工作。
- 起始点:起始点表示执行应该开始的位置。当您想从代码中间或断点处运行测试脚本时,可以使用起始点。
89) 提一下为什么在 Selenium 中选择 Python 而不是 Java?
以下几点支持在 Selenium 中使用 Python 而不是 Java:
- Java 程序往往比 Python 程序运行慢。
- Java 使用传统的括号来开始和结束代码块,而 Python 使用缩进。
- Java 采用静态类型,而 Python 是动态类型。
- Python 比 Java 更简单、更紧凑。
90) 提一下在 Selenium Webdriver 中处理 Ajax 调用的挑战是什么?
在 Selenium Webdriver 中处理 Ajax 调用的挑战是:
- 使用“pause”命令处理 Ajax 调用并不完全可靠。长时间暂停会使测试速度慢得无法接受,并增加测试时间。相反,“waitforcondition”在测试 Ajax 应用程序时会更有帮助。
- 难以评估与特定 Ajax 应用程序相关的风险。
- 给予开发人员完全的自由来修改 Ajax 应用程序使测试过程充满挑战。
- 创建自动化测试请求可能对测试工具来说很困难,因为此类 AJAX 应用程序通常使用不同的编码或序列化技术来提交 POST 数据。
91) 提一下 IntelliJ 是什么?
Intellij 是一款 IDE,可帮助您编写更好、更快的 Selenium 代码。Intellij 可用于 Java Bean 和 Eclipse 的替代方案。
92) 提一下您可以通过哪些方式自定义 TestNG 报告?
您可以通过两种方式自定义 TestNG 报告:
- 使用 ITestListener 接口
- 使用 IReporter 接口
93) 生成 PDF 报告需要哪个 Java API?
要生成 PDF 报告,您需要 Java API iText。
94) 提一下 Selenium WebDriver 中的监听器是什么?
在 Selenium WebDriver 中,监听器“监听”Selenium 脚本中定义的事件并相应地行动。它允许自定义 TestNG 报告或日志。主要有两种监听器:WebDriver 监听器和 TestNG 监听器。
95) 提一下 TestNG 中的监听器类型是什么?
TestNG 中的监听器类型有:
- IAnnotationTransformer
- IAnnotationTransformer2
- IConfigurable
- IConfigurationListener
- IExecutionListener
- IHookable
- IInvokedMethodListener
- IInvokedMethodListener2
- IMethodInterceptor
- IReporter
- ISuiteListener
- ITestListener
96) 提一下期望功能是什么?它在 Selenium 中有什么用?
期望功能是一系列键/值对,用于存储浏览器属性,如浏览器名称、浏览器版本、系统中浏览器驱动程序的路径等,以确定浏览器在运行时期的行为。
对于 Selenium:
- 它可用于配置 Selenium WebDriver 的驱动程序实例。
- 当您想在不同的操作系统和版本上,使用不同的浏览器运行测试用例时。
97) 在 Selenium Webdriver 中进行数据库测试需要哪个 API?
在 Selenium Webdriver 中进行数据库测试,需要 JDBC(Java 数据库连接)API。它允许您执行SQL 语句。
98) 提一下何时使用 AutoIT?
Selenium 旨在自动化不同浏览器上的基于 Web 的应用程序。但要处理应用程序中的窗口 GUI 和非 HTML 弹出窗口,您需要 AutoIT。了解更多关于 如何将 AutoIT 与 Selenium 结合使用。
99) 提一下在 Selenium 中工作时为什么需要会话处理?
在使用 Selenium 时,您需要会话处理。这是因为在测试执行期间,Selenium WebDriver 必须始终与浏览器交互以执行给定的命令。在执行时,还可能发生以下情况:在当前执行完成之前,其他人已经在同一台机器上以相同类型的浏览器开始执行另一个脚本。因此,为了避免这种情况,您需要会话处理。
100) 提一下在 Selenium 中使用 GitHub 的优点是什么?
使用 GitHub 进行 Selenium 的优点是:
- 当多个人在同一个项目上工作时,他们可以同时更新项目详细信息并通知其他团队成员。
- Jenkins 可以帮助您定期从远程仓库构建项目。这有助于您跟踪失败的构建。
为您的求职面试做好准备!!!通过 Selenium 教程 更好地准备。
通过 Selenium 测验 测试您的知识。
这份详细的 Java Selenium 面试问题 PDF 将帮助您消除对 Selenium 测试面试问题的疑虑,并帮助您通过面试。