分享十道Selenium面试题(附答案)

        软件测试培训也是一种提升技术及迅速转行的辅助手段,不管在哪学你都必须先去试听,看看讲课的风格及氛围,是否通俗易懂,课件是否老化,工具是否过时,课程内容及项目是否具有实战性,主要就是了解项目实战周期是多久,工具是否属现在主流,还有你自己喜不喜欢讲师的讲课风格,如果不喜欢讲师的上课风格也会对你的学习进度造成一定的影响,今天给大家分享Selenium的面试题。希望在学习的小伙伴都能找到更好的心仪工作。


问题1:Selenium是什么,流行的版本有哪些?

Selenium是基于Web的最流行的UI自动化测试工具。它提供了一组支持多种平台的公开API(例如Linux,Windows,Mac OS X等)。此外,像Google Chrome,Mozilla Firefox,Internet Explorer和Safari等所有现代浏览器都可以用来运行Selenium测试。它也涵盖了Android平台,其中Appium是实现Selenium Webdriver界面的工具,用于移动自动化。

值得注意的是,除了许多后来的小型版本之外,硒还有三个主要版本:

Selenium 1.0或Selenium RC,于2004年初发布,提供了一个使用服务器与浏览器交换命令和响应的API集。

Selenium 2.0或Selenium Webdriver,在2011年中推出,并在Selenium功能中引入了一系列重大改进。这些新的API完全取代了服务器组件,并与目标浏览器本地交互。

Selenium 3.0,这个版本是在2016年末发布的大版本。它带来的主要变化是引入Webdriver API的W3C规范,用于浏览器自动化。也就是说,每个主要的浏览器都会有自己的Webdriver API来实现功能。

问题2:你如何从命令行启动Selenium RC?

// 简单的启动Selenium RC的方法是

java -jar selenium-server.jar

// 在浏览器中运行一套Selenese脚本

java -jar selenium-server.jar –htmlSuite


问题3:在我的机器端口4444不是免费的。我怎样才能使用另一个端口?

//你可以在运行selenium服务器时指定端口为-

Java -jar selenium-server.jar -port 5555


问题4:什么是Selenium Server,它与Selenium Hub有什么不同?

Selenium Server是使用单个服务器作为测试节点的一个独立的应用程序。 Selenium hub代理一个或多个Selenium的节点实例。一个hub 和多个node被称为Selenium grid。运行SeleniumServer与在同一主机上用一个hub和单个节点创建de Selenium grid类似。


问题5:你如何从Selenium连接到数据库?

Selenium是一个Web UI自动化工具。它不提供任何API来建立数据库连接。这取决于你使用Selenium进行自动化的编程语言。在下面的例子中,我们假设正在使用Java。

一个Connection对象表示与数据库的连接。当我们使用连接方法连接到一个数据库时,我们创建了一个连接对象,它代表了与数据库的连接。单个数据库可能有一个连接或多个连接,还可能有多个连接到不同的数据库上。

我们可以使用Connection对象来做以下事情:创建用于执行SQL语句的Statement,PreparedStatement和CallableStatement对象。可以帮助我们提交或回滚一个JDBC事务。如果你想知道连接到的数据库或数据源信息,Connection对象通过使用DatabaseMetaData就可以收集有关数据库或数据源的信息。可以帮助我们关闭数据源。Connection.isClosed() 方法只有在调用了Connection.close()时才返回true 。此方法用于关闭所有连接。

首先我们需要通过使用DriverManager.getConnection()方法,建立与数据库的连接。这个方法接受一个包含URL的字符串。DriverManager类尝试查找可以连接到由字符串URL表示的数据库的驱动程序。每当调用getConnection()方法时,DriverManager类都会检查可以连接到URL中指定的数据库的所有已注册的Driver类的列表。句法:

String url = "jdbc: odbc:

makeConnection";

Connection con = DriverManager.getConnection(url,

"userID", "password");


问题6:Selenium RC中定位器方法有哪些?

00001. 

ID

00002. 

00003. 

Name

00004. 

00005. 

CSS (Cascade Stylesheet)

00006. 

00007. 

XPATH (Relative XPath and Absolute XPath)

00008. 

00009. 

Dom

00010.


问题7:你如何验证多个页面上存在的一个对象?可以使用下面的Selenium命令来检查:

assertTrue(selenium.isElementPresent(locator));


问题8:XPath中使用单斜杠和双斜杠有什么区别?如果XPath是从文档节点开始,它将允许创建“绝对”路径表达式。 例如 “/

html / body / p”匹配所有的段落元素。如果XPath在文档中的任意位置开始进行选择匹配,那么它将允许创建“相对”路径表达式。例如

“// p”匹配所有的段落元素。


问题9:如何编写Selenium IDE / RC的用户扩展?用户扩展(UX)存储在Selenium IDE或Selenium RC用来激活扩展的单独文件中。它包含用JavaScript编写的函数定义。因为Selenium的核心是用JavaScript开发的,所以要符合原语言的标准规则来创建扩展。要创建一个扩展,我们必须用下面的设计格式来编写函数。

// 样例

Selenium.prototype.doFunctionName = function(){

}

函数名称前面的“do”告诉Selenium这个函数可以被调用为一个步骤命令,而不是作为内部函数或私有函数被调用。


问题10:如何在页面加载成功后验证元素的存在?它可以通过下面的代码行来实现。只需一点时间(以秒为单位)来检查元素,如下所示:

public void waitForElementPresent(String element,

int timeout) throws Exception {

for (int second = 0;; second++) {

if (second >= timeout)

fail("Timeout. Unable to find the Specified

element" + element);

try {

if (selenium.isElementPresent(element))

break;

} catch (Exception e) {

}

Thread.sleep(1000);

}

}

如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加我们的软件测试学习交流群:705673780,里面有各种软件测试资料和技术交流~

你可能感兴趣的:(分享十道Selenium面试题(附答案))