资深和新手的100大 Selenium面试问答

2021-07-01  本文已影响0人  IT赶路人

微信公众号-IT赶路人,专注分享与IT相关知识,关注我,一起升职加薪!

图片

下面的Java Selenium问题指南涵盖了100个最重要的Selenium自动化面试问题,包括简单的Selenium Java面试问题以及带答案的Selenium自动化测试面试问题。本文包含了面向新同学的所有Selenium基本问题,以及针对有经验的应聘者的Selenium面试问题和答案,帮助面试者做准备。

为资深和新手准备的Selenium面试问题

以下是精选的顶级Selenium问答列表:

面向应届毕业生的Selenium面试基本问题

1) 什么是Selenium,由什么组成?

Selenium是一套用于自动化Web测试的工具。它由以下几个部分组成

2) 什么是Selenium2.0?

在Selenium 2.0中,Web测试工具Selenium RC和WebDriver被整合到单个工具中

什么是Selenium 2.0

3)提到什么是Selenium 3.0?

Selenium 3.0是Selenium的最新版本。它已经发布了Selenium 3.0的两个测试版,几乎没有以下变化:

以下是Selenium 3.0中添加的几个新功能

Beta 1更新 Beta 2更新(仅适用于Java)
最低Java版本现在为8+ 系统属性webdriver.gecko.driver现在强制服务器处于Marionette或传统Firefox驱动程序模式,忽略任何相关的所需功能
它将通过Mozilla的geckodriver支持Firefox 未指定浏览器时,网格修复注册时的NPE
对Edge的支持由微软提供 它现在通过苹果自己的Safari驱动程序在MacOS上支持Safari 在所有绑定中更新GeckoDriver-port参数

4)将如何找到使用Selenium的元素?

在Selenium中,网页中的每个对象或控件都被称为元素,在网页中查找元素有不同的方法,它们是

5)可以列出Selenium支持的测试类型吗?

对于基于Web的应用程序测试,可以使用Selenium

可以支持的测试类型有

a)功能测试,了解有关功能测试的更多信息。

b)数据回归

对于发布后的持续集成验证,可以使用自动化工具

a)Jenkins

b)Hudson

c)Quick Build

d)-CruiseCont

6)解释Selenium中的断言是什么,断言的类型是什么?

断言被用作重要的验证点。它验证断言类型的状态是否为“Assert”、“Verify”和“waitFor”。

7)别提X-PATH的用途是什么?

X-PATH用于在网页中查找WebElement。它在标识动态元素时也很有用。

8)能否解释一下单、双劈开在XPath上的区别?

单曲劈开‘/’

双劈开‘//’

9)能否列出使用Selenium面临的技术挑战?

Selenium的技术挑战是

10)键盘输入和键入命令有什么不同?

typeKeys() 将触发JavaScript事件,而 .type() 不会。Type 使用JavaScript语言填充Value属性,而 .typekeys() 类似于实际的用户输入

11)VERIFY命令和ASSERT命令有什么不同?

Assert:Assert允许检查元素是否在页面上。测试换句话说,测试将在检查失败的点终止。

VERIFY:VERIFY命令将检查元素是否在页面上,如果不在,则测试将继续执行。*在验证中,即使有任何测试失败,所有命令都将保证运行。

12什么是JUnit注解?有哪些不同类型的注解是有用的?

在Java中,可以将一种特殊形式的语法元数据添加到Java源代码中,这称为注解。

13)使用点击命令时可以使用屏幕坐标吗?

要单击元素的特定部分,需要使用clickAt命令。ClickAt命令接受元素定位器和x,y坐标作为参数-clickAt(locator,cordString)

14)Selenium有哪些优势?

15)为什么测试人员应该选择Selenium而不是QTP?

Selenium比qtp更受欢迎,因为

3/5/10年经验的高级Selenium Automation测试面试问题

以下是对有经验的应聘者来说最热门的Selenium面试问题:

16)“必须在Selenium中传递的四个参数是什么?

必须在Selenium中传递的四个参数是

17) setSpeed() 方法和sleep()方法有什么不同?

两者都会延迟执行的速度。

Thread.sleep()*它会在指定的时间段内停止当前(Java)线程。它只会停止一次

例如:thread.sleep(2000) -它将等待2秒

setSpeed()在特定的时间量内,它将为每个Selenium命令停止执行。

例如:selenium.setSpeed(“2000”) -它将等待2秒

如果使用的是速度较慢的Web应用程序,这个命令非常有用

18)什么是同源政策?如何避免同源政策?

“同源策略”是出于安全原因而引入的,它确保网站的内容永远不会被来自另一个网站的脚本访问。*根据该策略,浏览器中加载的任何代码只能在该网站的域内运行。

为了避免使用“同源策略”代理注入方法,在代理注入模式下,Selenium Server充当客户端配置的HTTP代理,该代理位于浏览器和被测应用程序之间,然后将AUT屏蔽在一个虚构的URL下

19)什么是浏览器的高级权限?

提升权限的目的类似于代理注入,允许网站做一些通常不允许的事情,通过使用这些浏览器模式,Selenium Core可以直接打开AUT,也可以读/写其内容,而不需要通过Selenium RC服务器传递整个AUT。

20)如何使用Selenium“提交”表单?

可以在元素上使用“submit”方法提交表单-

element.submit();

或者,也可以在构成的元素上使用单击方法

21) TestNG有哪些功能,并列出了TestNG中一些使其更有效的功能?

TestNG是一个基于JUnit和NUnit的测试框架,用于简化从单元测试到集成测试的广泛测试需求。而使其成为高效测试框架的功能是

22) 不提隐式等待和显式等待有什么区别?

隐式等待:为所有连续的Web元素搜索设置超时。在指定的时间量内,它将尝试查找,等待元素出现。

显式等待:它是一次性的,用于特定的搜索。

23)在整个脚本中,对于“如果没有frame id,也没有fraime name”,应该考虑哪个属性?

可以使用driver.findElements(By.xpath(“//iframe”) )…。

这将返回frame列表。

将需要切换到每一frame和搜索我们想要的定位器。

24)解释find elements()和find element()有什么不同?

findElement()

它使用给定的“定位机制”查找当前页面中的第一个元素。

findElements()使用给定的“定位机制”查找当前页面中的所有元素。

25)解释一下JUnits注解与Selenium有什么联系?

与Selenium链接的JUnits注解包括

26)解释什么是Datadriven框架和关键字驱动?

Datadriven框架:在这个框架中,测试数据被分离并保存在测试脚本之外,而测试用例逻辑驻留在测试脚本中。测试数据从外部文件(Excel文件)中读取并加载到变量中,变量用于输入值和验证值。

关键字驱动框架:关键字驱动框架需要开发独立于测试自动化的数据表和关键字。在关键字驱动测试中,被测应用程序的功能记录在表格中,并为每项测试提供逐步说明。

27)解释如果任何站点显示任何密码和用户名的身份验证弹出窗口,如何登录到该站点?

使用url传递用户名和密码

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 Test测试工具 Selenium测试工具
Borland Silk测试不是免费的测试工具 Selenium是完全免费的测试自动化工具
Silk测试仅支持Internet Explorer和Firefox Selenium支持Internet Explorer、Firefox、Safari、Opera等多种浏览器
Silk测试使用测试脚本语言 Selenium套件可以灵活地使用多种语言,如Java、Ruby、Perl等
Silk测试可用于客户端服务器应用程序 Selenium只能用于Web应用程序

30)什么是对象存储库?

对象存储库是任何UI自动化中必不可少的实体,它允许测试人员将脚本中使用的所有对象存储在一个或多个集中位置,而不是分散在测试脚本中。

31)能解释一下Selenium网格是如何工作的吗?

Selenium Grid将测试发送到集线器。这些测试被重定向到Selenium Webdriver,它启动整个测试套件,允许并行运行测试。

32)我们可以使用Selenium网格进行性能测试吗?

是。但不如LoadRunner这样的专用性能测试工具有效。

33)能否列出Webdriver相对于Selenium Server的优势?

34)说Selenium WebDriver或Selenium 2.0有哪些功能了?

当需要以下方面的改进支持时,应使用WebDriver

35)在Webdriver中,注入功能在Webdriver不支持的浏览器上执行测试时,会遇到什么限制?

注入功能的主要限制是“findElement”命令可能无法按预期工作。

36)能否解释一下如何使用Selenium Web Driver查找页面中的破损图像?

要使用Selenium Web驱动程序在页面中查找损坏的图像,执行以下操作

37)可以解释一下如何在web驱动程序中处理颜色吗?

要处理Web驱动程序中的颜色,可以使用

使用 getCssValue(arg0) 函数通过将‘color’字符串作为参数发送来获取颜色

38)使用web驱动程序如何存储文本框中的值?

可以使用以下命令来存储使用Web驱动程序的文本框形式的值

driver.findElement(By.id(“your Textbox”)).sendKeys(“your keyword”);

39)解释一下如何在frame之间切换?

要在Frame之间切换,WebDrivers[ driver.switchTo() .frame()]方法采用以下三个的参数之一

40) 在Selenium web驱动程序中有5个不同的异常?

在Selenium Web驱动程序中有5个不同的异常,它们是

41) 解释一下使用WebDriver如何执行双击?

可以使用以下命令执行双击操作

*语法- Actions act = new Actions (driver); *act.doubleClick(webelement);

42) 如何使用Selenium上传文件?

可以使用type命令在上传文件的文件输入框中键入。然后,使用Java中的“Robot”类来实现文件上传。

43)哪个Web驱动程序实现最快?

HTMLUnit驱动程序实现最快,HTMLUnitDriver不在浏览器上执行测试,而是在纯http求上执行,这比启动浏览器并执行测试要快得多

44)解释一下如何使用Selenium 2.0处理框架吗?

要在HTML框架上引入控件,可以使用“switchTo”框架方法-

driver.switchTo() .frame(“frameName”) ;

要指定frame,可以使用索引号

driver.switchTo() .frame(“parentFrame.4.frameName”) ;

这将在名为-“frame Name”的4个frame上带来控制 子框架名称“parentFrame”

45) getWindowhandles() 和getwindowhandle()有什么区别?

getwindowhandles() :用于获取所有打开浏览器的地址,返回类型设置为<String>

getwindowhandle() :获取控件所在的当前浏览器地址,返回类型为字符串

46) 解释一下如何从frame切换回来?

要使用方法 defaultContent() 从frame切换回来,执行以下操作

语法- driver.switchTo() .defaultContent();

47) 列出不同类型的定位器?

不同类型的定位器有

48)为了将变量的值显示到输出控制台或日志中,使用的命令是什么?

上面使用的是PHP。如果使用的是Java,将echo替换为System.out.println

49)能否解释一下如何将恢复场景与Selenium一起使用?

恢复方案取决于使用的编程语言。如果正在使用Selenium WebDriver Java测试中的“try catch”

50)解释如何迭代测试脚本中的选项?

要遍历测试脚本中的选项,可以循环使用编程语言的功能,例如,要在文本框中键入不同的测试数据,可以使用Java中的“for”循环

//数组中的测试数据采集

string[]testData={“test1”,“test2”,“test3”};

//遍历每个测试数据

For (string s: test data) { selenium.type ( “elementLocator”, testData) ; }

51)如何在混合框架中使用TestNG制作定制的html报表?

有三种方法

52)根据测试脚本,如何创建html测试报告?

创建html测试报告有三种方式

53)解释一下如何在Selenium IDE中插入断点?

在Selenium IDE中插入断点

54)在Selenium IDE中解释如何调试测试?

55)什么是Selenese, elenese有哪些类型?

Selenese是用于运行测试的Selenium命令集

有三种类型的Selenese

56)解释一下Selenium IDE的局限性是什么?

Selenium IDE的局限性

57)Selenium IDE中的两种视图模式是什么?

Selenium IDE既可以作为弹出窗口打开,也可以在侧栏中打开

58)在Selenium IDE中,哪些元素定位器可用于在网页上定位元素?

在Selenium中,主要使用4个定位器

59)在Selenium IDE中,如何为测试数据生成随机数和日期?

在Selenium IDE中,可以使用Java脚本生成随机数

type

css=input#s

javascript{Math.random()}

And for

type

css=input#s

javascript{new Date()}

60)如何将Selenium IDE测试从Selenese转换为另一种语言?

可以使用Selenium IDE的Format选项将测试转换为另一种编程语言

61)使用Selenium IDE可以从特定的html表格单元格获取数据吗?

可以使用“storeTable”命令

示例存储来自html表的单元格0,2的文本

storeTable

Css=#table 0.2

textFromCell

62)来解释一下是什么导致Selenium IDE测试失败?

63)可以解释一下如何在Selenium IDE中调试测试吗?

64)Selenium IDE如何执行单行?

在Selenium IDE中,可以通过两种方式执行单行命令

65)源代码视图在Selenium IDE中以哪种格式显示脚本?

在Selenium中,IDE源代码视图以XML格式显示脚本

66)解释一下如何在Selenium IDE中插入起点?

可以通过两种方式设置Selenium IDE

67)如果已经编写了自己的元素定位器,将何测试它?

要测试可以使用Selenium IDE的“查找按钮”的定位器,当单击它时,将在屏幕上看到一个高亮显示的元素,前提是元素定位器是正确的,否则将显示一条错误消息

68)什么是正则表达式?如何在Selenium中使用正则表达式?

正则表达式是用于描述搜索模式的特殊文本字符串。在Selenium IDE中,正则表达式可以与关键字-regexp:一起使用,作为值的前缀,需要为期望值包括模式。

69)什么是core extension?

如果想“扩展”Selenium函数库提供的默认功能,可以创建一个Core扩展。甚至可以下载由其他Selenium爱好者创建的现成的Core扩展。

70)如何处理Selenium中的多个窗口?

可以使用命令selectWindow在窗口之间切换。此命令使用Windows的标题来标识要切换到哪个窗口。

71)*将如何验证Web元素的具体位置

可以使用verifyElementPositionLeft&verifyElementPositionTop。它分别从页面左侧和顶部对元素的位置进行像素比较

72)*如何检索警告框中的消息?

可以使用storeAlert命令,该命令将获取告警弹出消息并将其存储在变量中。

73)什么是Selenium RC(遥控器)?

Selenium IDE在浏览器支持和语言支持方面存在限制。通过使用Selenium,可以降低RC的限制。

74)为什么要使用Selenium RC?

Selenium IDE很多功能不直接支持,比如条件语句、迭代、测试结果的记录和报告、意外错误处理等等,因为IDE只支持HTML语言,所以使用Selenium RC来处理这些问题,因为它支持Perl、Ruby、Python、PHP等语言,使用这些语言我们可以编写程序来实现IDE问题。

75)解释一下web驱动程序和RC之间的主要区别是什么?

Selenium RC和WebDriver的主要区别在于,Selenium RC在加载页面时将javascript函数注入浏览器。另一方面,Selenium Webdriver使用内置支持的浏览器驱动

76)RC有哪些优势?

RC的优势在于

77)解释什么是框架,RC中可用的框架有哪些?

库和类的集合称为Framework,当测试人员必须自动化测试用例时,它们非常有用。NUnit、JUnit、TestNG、Bromine、RSpec、unittest是RC中可用的一些框架。

78)我们如何在RC中处理弹出窗口?

为了在RC中处理弹出窗口,使用selectWindow方法选择弹出窗口,windowFocus方法让控件从当前窗口变为弹出窗口,并根据脚本执行操作

79)使用Selenium RC时有哪些技术限制?

除了来自js的“同源策略”限制外,Selenium还受到限制,不能执行浏览器之外的任何内容。

80)在没有Selenium Grid的情况下,如何使用Selenium RC在一个操作系统上驱动两个不同浏览器上的测试?

可以,当不使用Java测试框架时也是可以的。如果使用的是“parallel=test”属性,可以将测试设置为并行执行,并且可以定义两个不同的测试,每个测试使用不同的浏览器,而不是使用Java测试框架。

81)为什么要将TestNG与Selenium RC配合使用?

如果希望针对不同的服务器和客户端平台实现完全自动化,那么需要一种从命令行进程调用测试的方法,报告可以告诉发生了什么,并且可以灵活地创建测试套件。TestNG提供了这种灵活性。

82)解释一下如何捕获服务器端日志Selenium Server?

要捕获Selenium Server中的服务器端日志,可以使用命令

83)除了默认端口4444之外,如何运行Selenium Server?

可以在java-jar Selenium-server.jar-port上运行Selenium服务器,而不是在它的默认端口上

84)Selenium网格集线器是如何与RC子机保持联系的?

在预定义的时间,Selenium网格集线器会轮询所有RC从站,以确保其可用于测试。决定参数称为“remoteControlPollingIntervalSeconds”,并在“grid_configuration ation.yml”文件中定义

85)在使用Selenium的情况下,如何处理网络延迟?

要处理网络延迟,可以使用driver.manage.pageloadingtime表示网络延迟

86)要在文本框中输入值,可以使用什么命令?

要在文本框中输入值,可以使用命令 sendkeys()

87)如何使用Selenium识别对象?

要使用Selenium标识对象,可以使用

isElementPresent(String locator)

isElementPresent采用定位器作为参数,如果找到,则返回布尔值

88在Selenium中,什么是断点和起始点?

89)为什么在Selenium中选择Python而不是Java?

与Java相比,Python更适合与Selenium一起使用的几点是,

90)在Selenium Webdriver中处理Ajax调用的难点是什么?

在Selenium Webdriver中处理Ajax调用所面临的挑战包括

91)什么是IntelliJ?

IntelliJ是一种IDE,可以帮助为Selenium编写更好、更快的代码。IntelliJ可以用在Java bean和Eclipse的选项中。

92)可以通过哪些方式自定义TestNG报告?

可以通过两种方式自定义TestNG报告。

93)要生成pdf报告,提及需要哪些Java API?

要生成pdf报告,需要Java API IText。

94)Selenium WebDriver中的监听者是什么?

在Selenium WebDriver中,监听者“监听”Selenium脚本中定义的事件并相应地进行操作。Webdriver侦听器和TestN监听器。

95)提到TestNG中的监听器类型是什么?

TestNG中的监听器类型是,

96) 就Selenium而言,什么是期望的功能?,它有什么用处?

期望的功能是存储浏览器属性(如浏览器名称、浏览器版本、浏览器驱动程序在系统中的路径等)的一系列键/值对,以确定浏览器在运行时的行为。

对于Selenium来说,

97)对于Selenium Webdriver中的数据库测试,需要什么API?

对于Selenium Webdriver中的数据库测试,需要JDBC(Java Database Connectivity,Java数据库连接)API。它允许执行SQL语句。

98)何时使用AutoIT?

Selenium设计用于在不同的浏览器上自动运行基于Web的应用程序。但是处理无GUI或者非HTML的弹出窗的时候需要AutoIT。

99)在使用Selenium时为什么需要会话处理?

在使用Selenium时,需要会话处理。这是因为,在测试执行期间,Selenium WebDriver必须与之交互,因此要避免这种情况,需要进行会话处理。

100)使用Git Hub for Selenium的优势是什么?

使用Git Hub进行Selenium检测的优势在于

上一篇 下一篇

猜你喜欢

热点阅读