Selenium自动化测试面试必备:高频面试题及答案整理

自动化测试已经成为现代软件测试中不可或缺的一部分。在自动化测试中,Selenium是最受欢迎的工具之一,因为它可以模拟用户与Web应用程序的交互。因此,对于许多测试工程师来说,熟练掌握Selenium框架是非常重要的。如果你正在寻找一份自动化测试工作,那么你可能会被问到一些关于Selenium的面试问题。在本文中,我们将介绍一些最常见的Selenium自动化面试问题和答案,帮助你为面试做好准备。

01 什么是Selenium?
Selenium一个基于web的开源的UI自动化测试框架。Selenium支持大多数语言,如Java、PHP、Python、Perl、Ruby等。因此成为测试专业人员中最受欢迎的工具之一。它是不同测试工具的组合,如Selenium IDE、Selenium RC、WebDriver和Selenium Grid。

02 什么是Selenese?
Selenium命令通常被称为selenese,是用来运行测试的一个命令的集合。测试人员可以使用Selenese测试损坏的链接、UI上某些对象的存在、Ajax功能、弹窗、窗口、列表选项等等。

03 什么是Selenium 2.0?
它是Selenium RC 和 WebDriver 的组合。

04 什么是Xpath?
它是XML文档中元素的路径。通过使用它,我们可以很容易地找出网页上的各种元素。如//tagname[@attribute=’value’]

05 Selenium WebDriver 中的定位器是什么?
定位器用于识别网页上的元素。它是HTML网页的属性。我们使用不同类型的定位器来查找页面元素,例如:

ID

Name

cssSelector

Link text

PartialLinkText

ClassName

tagName

06 绝对路径和相对路径有什么区别?
1.绝对路径以单个正斜杠/开头,这意味着你可以从根节点选择元素,

如html/body/div[4]/div[2]/a。

2.相对路径以双正斜杠//和HTML内容的中间开始。它比绝对路径小而健壮,

如//*[@id=’Blog1′]/div[1]/a。

07 Selenium 有哪些缺点?
1.Selenium只支持基于web的应用。
2.无法读取验证码。
3.Selenium 没有生成测试结果的内置工具。
4.由于 Selenium是一个开源工具,所以它不提供任何技术支持。
5.Selenium没有任何对象存储库,因此我们无法在其中维护对象。为了克服这个问题,我们使用页面对象模型概念。

08 Assert 和 Verify 有什么区别?
1.Assert:如果我们在测试脚本中使用Assert命令,那么如果有任何测试步骤失败,测试执行将停止。
2.Verify:它还用于验证测试步骤,但在任何时候测试步骤失败,测试执行将继续。

09 Selenium Webdriver中的同步是什么?
有时Selenium比我们的Web应用程序更快,反之亦然。在这种情况下,我们必须管理两者的速度以运行我们的测试脚本。所以我们有不同的等待命令,比如隐式等待、显式等待等。

10 隐式等待和显式等待有什么区别?
隐式等待:为整个测试执行期间设置时间。例如,如果Selenium没有找到任何元素,那么它会在给定的时间段内等待元素。如果在给定时间内没有找到该元素,那么它将抛出异常ElementNotVisibleException。

driver.manage().timeouts().implicitlyWait(20, TimeUnits.SECONDS);

显式等待:为特定的一个元素设置时间。如元素可见,按钮可点击等。如果我们为按钮设置显式等待3秒,然后Selenium为该按钮等待3秒。如果按钮在3秒内无法单击,则Selenium会抛出异常ElementNotVisibleException。

WebDriverWait wait = new WebDriverWait(driver, 3);
wait.until(ExpectedConditions.elementToBeClickable(By.id(“id”)));

11 什么是iframe以及如何定位?
1.iframe是一个网页,它是HTML页面的独立部分。iframe用于显示一些不同的东西,如广告等。对于 iframe,我们使用