大家好,又见面了,我是你们的朋友全栈君。
软件测试培训也是一种提升技术及迅速转行的辅助手段,不管在哪学你都必须先去试听,看看讲课的风格及氛围,是否通俗易懂,课件是否老化,工具是否过时,课程内容及项目是否具有实战性,主要就是了解项目实战周期是多久,工具是否属现在主流,还有你自己喜不喜欢讲师的讲课风格,如果不喜欢讲师的上课风格也会对你的学习进度造成一定的影响,今天给大家分享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 Specifiedelement” + element);
try {
if (selenium.isElementPresent(element))
break;
} catch (Exception e) {
}
Thread.sleep(1000);
}
}
如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加我们的软件测试学习交流群:705673780,里面有各种软件测试资料和技术交流~
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/151457.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...