Selenium面试题和答案(2024年收集更新)
2024年收集更新的Selenium面试题和答案,Selenium 基于用于测试目的的自动化 Web 应用程序,但它当然不仅限于此。 它使浏览器自动化,基于 Web 的管理任务也可以自动化。Selenium 得到了一些领先浏览器供应商的支持,这些供应商采用它使 Selenium 成为其浏览器的重要组成部分。 它也是许多其他浏览器自动化工具、API 和框架中的核心技术。
自动化测试使用自动化工具来编写和执行测试用例,执行自动化测试套件不需要人工参与。 测试人员更喜欢自动化工具来编写测试脚本和测试用例,然后组合成测试套件。自动化测试允许使用专门的工具来自动执行手动设计的测试用例,而无需任何人工干预。 自动化测试工具可以访问测试数据,控制测试的执行并将实际结果与预期结果进行比较。 因此,生成被测系统的详细测试报告。
完整答案
自动化测试的一些基本优势如下:
自动化测试支持对应用程序的功能和性能测试。它支持重复测试用例的执行。它有助于并行执行。它有助于测试大型测试矩阵。它提高了准确性,因为没有人为错误的机会。它可以节省时间和金钱。
完整答案
功能自动化使用的前 10 大自动化测试工具列表如下:
由 Teleric 开发的Teleric Test Studio。TestingWhizHPE Unified Functional Testing (HP - UFT 以前的 QTP)Tosca TestsuiteWatirQuick Test Professional(由 HP 提供)。Rational Robot(由 IBM 提供)。Coded UI(由 Microsoft 提供)。Selenium(开源)。Auto It(开源)。
完整答案
一些常用的非功能自动化自动化测试工具列表如下:
Load Runner,由 Hp 提供。JMeter,由 Apache 提供。Burp Suite,由 PortSwigger 提供。Acunetix,由 Acunetix 提供。
完整答案
Selenium 是一个可移植的软件测试框架。 Selenium 工具通过回放工具来编写功能测试,而无需学习测试脚本语言。Selenium 是使用最广泛的开源 Web UI(用户界面)自动化测试套件之一。 Jason Huggins 于 2004 年开发了 Selenium,作为 Thought Works 的内部工具。 Selenium 支持跨不同浏览器、平台和编程语言的自动化。
完整答案
Selenium 不仅仅是一个工具,而是一套软件,每个软件都有不同的方法来支持自动化测试。 它由四个主要组成部分组成,其中包括:
Selenium 集成开发环境 (IDE)Selenium Remote Control(现已弃用)WebDriverSelenium Grid
完整答案
Selenium 支持各种操作系统、浏览器和编程语言。分别如下所示:
编程语言:C#、Java、Python、PHP、Ruby、Perl、JavaScript。操作系统:Android、iOS、Windows、Linux、Mac、Solaris。浏览器:Google Chrome、Mozilla Firefox、Internet Explorer、Edge、Opera、Safari 等。
完整答案
Selenium v1.0:
1.0 版是 Selenium 的初始版本。它包括三个工具:Selenium IDE、Selenium RC 和 Selenium Grid。
Selenium v2.0:
Selenium WebDriver 在“2.0”版本中取代了 Selenium RC。随着 WebDriver 的出现,RC 被弃用并移至遗留包。
Selenium v3:
最新版本的 Selenium 3 具有新的附加特性和功能。它包括 Selenium IDE、Selenium We...
完整答案
可以通过 Selenium 实现的不同类型的测试是:
功能测试回归测试健全性测试冒烟测试响应式测试跨浏览器测试UI测试(黑盒)集成测试
完整答案
Selenium IDE 是作为 Firefox 扩展实现的,它在测试脚本上提供记录和回放功能。 它允许测试人员以多种语言导出录制的脚本,例如 HTML、Java、Ruby、RSpec、Python、C#、JUnit 和 TestNG。Selenium IDE 的范围有限,生成的测试脚本不是很健壮且可移植。
完整答案
Selenium 命令,也称为“Selenese”,是 Selenium 中用于运行测试的一组命令。 例如命令——打开(URL); 在指定的浏览器中启动所需的 URL,它接受相对和绝对 URL。一系列 Selenium 命令 (Selenese) 一起称为测试脚本。
完整答案
在 Selenium 中,网络元素是在定位器的帮助下识别和定位的。 定位器指定一个目标位置,该位置在 Web 应用程序的上下文中唯一地定义 Web 元素。 因此,为了准确准确地识别 Web 元素,我们在 Selenium 中使用了不同类型的定位器:
IDClassNameNameTagNameLinkTextPartialLinkTextXpathCSS SelectorDOM
完整答案
用于自动化浏览器的 WebDriver API 列表包括:
AndroidDriverChromeDriverEventFiringWebDriverFirefoxDriverHtmlUnitDriverInternetExplorerDriveriPhoneDriveriPhoneSimulatorDriverRemoteWebDriver
完整答案
Selenium 可用于自动化功能测试,可与 Maven、Jenkins、&Docker 等自动化测试工具集成,实现持续测试。 它还可以与 TestNG、&JUnit 等工具集成,用于管理测试用例和生成报告。
完整答案
断言用作验证点。 它验证应用程序的状态是否符合预期。 断言的类型是:“assert”、“verify”和“waitFor”。
完整答案
断言和验证命令的区别如下:
断言:断言命令检查给定条件是真还是假。 如果条件为真,程序控制将执行下一阶段的测试,如果条件为假,则停止执行,不执行任何操作验证:验证命令还检查给定条件是真还是假。 它不会停止程序执行,即验证过程中的任何失败都不会停止执行,所有测试阶段都会执行。
完整答案
XPath 也被定义为 XML 路径。 它是一种用于查询 XML 文档的语言。 这是在 Selenium 中定位元素的重要方法。 XPath 由路径表达式和一些条件组成。 在这里,我们可以轻松编写 XPath 脚本/查询来定位网页中的任何元素。 它被开发为允许 XML 文档的导航。 它在导航时考虑的关键因素是选择单个元素、属性或 XML 文档的某些其他部分以进行特定处理。 它还生产可靠的定位器。 关于 XPath 的其他一些要点如下:
XPath 是一种用于在 XML 文档中定位节点的语言。当...
完整答案
XPath Absolute:
XPath Absolute 使用户能够提及从根 HTML 标记到特定元素的完整 XPath 位置。语法: //html/body/tag1[index]/tag2[index]/…/tagN[index]示例: //html/body/div[2]/div/div[2]/div/div/div/fieldset/form/div[1]/input[1]
XPath 属性:
当没有适合要定位的元素的 id 或 name 属性时,始终建议使用 XPath 属性。...
完整答案
单斜杠“/”:单斜杠用于创建具有绝对路径的 XPath。双斜杠“//”:双斜杠用于创建具有相对路径的 XPath。
完整答案
可以使用的 JUnit 注释有:
Test
Before
AfterIgnoreBeforeClassAfterClassRunWith
完整答案
WebDriver支持的“移动测试驱动程序”是:
AndroidDriverIphoneDriverOperaMobileDriver
完整答案
Selenium WebDriver 支持以下语言编写测试用例 -
JAVAPHPPythonC#RubyPerl
完整答案
在大多数情况下,TypeKeys() 会触发 JavaScript 事件,而 .type() 不会。
完整答案
“type”命令用于在软件 Web 应用程序的文本框中键入键盘键值。 它也可以用于选择组合框的值,而“typeAndWait”命令在您的输入完成并且软件网页开始重新加载时使用。 此命令将等待软件应用程序页面重新加载。 如果输入时没有页面重新加载事件,则必须使用简单的“type”命令。
完整答案
findElement():用于使用给定的“定位机制”在当前页面中查找第一个元素。 它返回一个 WebElement。findElements():它使用给定的“定位机制”来查找当前页面内的所有元素。 它返回一个 Web 元素列表。
完整答案
Selenium Webdriver 引入了等待基于 AJAX 的应用程序的概念。 有两种类型的等待:
隐式等待显式等待
完整答案
隐式等待的主要缺点是它会降低测试性能。隐式等待的另一个缺点是:假设你将等待限制设置为 10 秒,并且元素在 11 秒内出现在 DOM 中,您的测试将失败,因为您告诉它最多等待 10 秒。
完整答案
Selenium Grid方便您将测试分布在多台机器上,并且同时分布在所有机器上。 因此,可以使用相同的文本脚本在 Windows 上的 Internet Explorer 和 Mac 机器上的 Safari 上执行测试。 它减少了测试执行的时间并提供了快速的反馈。
完整答案
我们需要创建该特定浏览器的驱动程序实例。例如:
WebDriver driver = newFirefoxDriver();
这里,“WebDriver”是一个接口,我们正在创建一个 WebDriver 类型的引用变量“driver”,使用“FireFoxDriver”类进行实例化。
完整答案
参考以下代码实现:
public class FirefoxBrowserLaunchDemo {
public static void main(String[] args) {
//Creating a driver object referencing WebDriver interface
WebDriver driver;
//Setting webdriver.gecko.driver property ...
完整答案
参考以下代码实现:
public class ChromeBrowserLaunchDemo {
public static void main(String[] args) {
//Creating a driver object referencing WebDriver interface
WebDriver driver;
//Setting the webdriver.chrome.driver propert...
完整答案
参考代码实现:
public class IEBrowserLaunchDemo {
public static void main(String[] args) {
//Creating a driver object referencing WebDriver interface
WebDriver driver;
//Setting the webdriver.ie.driver property to its ...
完整答案
我们将使用 Action 类来生成用户事件,例如右键单击 WebDriver 中的元素。参考代码片段:
Actions action = newActions(driver);
WebElement element = driver.findElement(By.id("elementId"));
action.contextClick(element).perform();
完整答案
代码实现如下:
Actions action = newActions(driver);
WebElement element = driver.findElement(By.id("elementId"));
action.moveToElement(element).perform();
完整答案
执行拖放操作的代码片段:
//WebElement on which drag and drop operation needs to be performed
WebElementfromWebElement = driver.findElement(By Locator of fromWebElement);
//WebElement to which the above object is dropped
WebElementtoWebElement = driver.fin...
完整答案
在 Webdriver 中有多种刷新页面的方法。
方法1 使用 driver.navigate 命令 -
driver.navigate().refresh();
方法2 使用 driver.getCurrentUrl() 和 driver.get() 命令 -
driver.get(driver.getCurrentUrl());
方法3 使用 driver.getCurrentUrl() 和 driver.navigate() 命令 -
driver.navigate().to(driv...
完整答案
返回浏览器历史记录:
driver.navigate().back();
在浏览器历史记录中向前导航:
driver.navigate().forward();
完整答案
参考实现代码:
driver.get("url"); or
driver.navigate().to("url");
完整答案
自动化测试的好处如下 -
它允许执行重复的测试用例它支持并行执行自动化测试鼓励无人值守的执行它提高了准确性。 因此,它减少了人为错误它可以节省时间和金钱。
完整答案
获取命令用于获取指定网页元素的内部文本。 get 命令不需要任何参数,但它返回一个字符串类型的值。 它也是从网页验证消息、标签和错误等的广泛使用的命令之一。语法
String Text = driver.findElement(By.id("Text")).getText();
完整答案
使用 WebDriver 的 Select 类来选择下拉列表中的值。
selectByValue 语法
Select selectByValue = new Select(driver.findElement(By.id("SelectID_One")));
selectByValue.selectByValue("greenvalue");
selectByVisibleText 语法
Select selectByVisibleText = ne...
完整答案
导航命令如下 -
navigate().back()
上面的命令不需要参数,将用户带回到上一个网页,示例:
driver.navigate().back();
navigate().forward()上面的命令允许用户参考浏览器的历史导航到下一个网页。示例:
driver.navigate().forward();
navigate().refresh()
navigate().refresh()命令允许用户通过重新加载所有 Web 元素来刷新当前网页。
driver.navigate()...
完整答案
内联框架缩写为 iframe 。 它用于在当前文档中插入另一个文档。 这些文档可以是 HTML 文档,也可以是简单的网页和嵌套网页。
按 id 选择 iframe
driver.switchTo().frame("ID of the frame");
使用 tagName 定位 iframe -
driver.switchTo().frame(driver.findElements(By.tagName("iframe").get(0));
使用索引定...
完整答案
要使用 HtmlUnit,首先使用 RemoteWebDriver 并将其传递给所需的功能。
IWebDriver driver
= new RemoteWebDriver(DesiredCapabilities.HtmlUnit())
要运行 Firefox 实现,请使用 -
IWebDriver driver
= new RemoteWebDriver(DesiredCapabilities.HtmlUnitWithJavaScript())
完整答案
Selenium 使用 PROXY 类促进从代理重定向浏览。 看下面的例子:
String PROXY = "210.201.125.147:8080";
org.openqa.selenium.Proxy proxy = new.org.openqa.selenium.Proxy();
proxy.setHTTPProxy(Proxy)
.setFtpProxy(Proxy)
.setSslProxy(Proxy)
DesiredCapabiliti...
完整答案
页面对象模型是一种用于为 Web UI 元素创建对象目录的设计模式。 每个网页都需要有其页面类。 page类负责在网页中查找WebElements,然后对WebElements进行操作。
使用 POM 的好处如下:
它有助于在 UI 中与 Verification 分开操作和流程 - 提高代码可读性多个测试可以使用同一个对象存储库,因为对象存储库独立于测试用例。代码的可重用性
完整答案
下面是在 WebDriver 中捕获屏幕截图的程序:
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import or...
完整答案
sendKeys("String to be enter") 用于在文本框中输入字符串。语法
WebElement username = drv.findElement(By.id("Email"));
// entering username
username.sendKeys("sth");
完整答案
WebDriver 允许用户检查 Web 元素的可见性。 这些网络元素可以是按钮、单选按钮、下拉菜单、复选框、框、标签等,它们与以下方法一起使用。
isDisplayed()isSelected()isEnabled()
语法:
isDisplayed():
boolean buttonPresence = driver.findElement(By.id("gbqfba")).isDisplayed();
isSelected():
boolean butto...
完整答案
语法:
driver.findElement(By.linkText("Google")).click();
上面的命令使用链接文本搜索元素,然后单击该元素,因此用户将被重定向到相应的页面。以下命令可以访问前面提到的链接。
driver.findElement(By.partialLinkText("Goo")).click();
上面给出的命令根据括号中提供的链接的子字符串搜索元素。 之后,partialLinkText() 找到具有指定子字符串的 ...
完整答案