分享十道Selenium面试题(附答案)「建议收藏」

分享十道Selenium面试题(附答案)「建议收藏」         软件测试培训也是一种提升技术及迅速转行的辅助手段,不管在哪学你都必须先去试听,看看讲课的风格及氛围,是否通俗易懂,课件是否老化,工具是否过时,课程内容及项目是否具有实战性,主要就是了解项目实战周期是多久,工具是否属现在主流,还有你自己喜不喜欢讲师的讲课风格,如果不喜欢讲师的上课风格也会对你的学习进度造成一定的影响,今天给大家分享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 Specifiedelement” + element);
try {

if (selenium.isElementPresent(element))
break;
} catch (Exception e) {

}
Thread.sleep(1000);
}
}

 

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

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151457.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • height:100vh的应用

    height:100vh的应用今天改移动端页面样式的时候因为height:100vh,导致我想超出部分滚动页面的效果没有做出来。就查查这玩意是啥意思。别人解释的height:100vhvh就是当前屏幕可见高度的1%,也就是说height:100vh==height:100%;但是当元素没有内容时候,设置height:100%,该元素不会被撑开,此时高度为0,但是设置height:100vh,该元素会被撑开屏幕高…

    2022年5月27日
  • 数据库关系代数表达式学习[通俗易懂]

    数据库关系代数表达式学习[通俗易懂]本文转自:http://www.blogjava.net/decode360/archive/2009/04/15/292362.html感谢原作者关系代数是关系数据库系统查询语言的理论基础。很有必要学习一下,有些是用代数表达式很方便的东西,用SQL写出来还是挺麻烦的,并不是想象当中那么直接。 一、关系代数的9种操作:    关系代数中包括了:

    2022年10月16日
  • C语言学习——结构体数据类型

    C语言学习——结构体数据类型本章节比较简单不做过多说明,直接上案例,如有疑问,欢迎留言。结构体作为函数参数#include <stdio.h>#include <string.h>struct Books{ char name[50]; char author[50]; int book_id;};// 函数声明void printBook(struct Books *b…

    2022年8月18日
  • js匿名函数和箭头函数_函数式编程

    js匿名函数和箭头函数_函数式编程js匿名函数、箭头函数,以及他们的区别匿名函数箭头函数区别

    2022年9月27日
  • 爱发php企业发卡网源码_企业级发卡平台源码,界面友好,支付通道齐全,运营级发卡平台源码…

    爱发php企业发卡网源码_企业级发卡平台源码,界面友好,支付通道齐全,运营级发卡平台源码…企业级发卡平台源码,界面友好,支付通道齐全,运营级发卡平台源码PHP环境:php5.XMySQL环境:mysql5.6服务器需开启伪静态后台默认账号密码:配置说明:数据恢复文件目录\a8tgconfig\180626145246.sql或者通过客户端直接还原Back.psc数据库配置文件:\a8tgconfig\config.php修改相关数据库IP,账号,密码支付接口…

    2022年7月14日
  • 浏览器清理缓存的几种方法

    浏览器清理缓存的几种方法一.为什么使用缓存简单的说,就是为了让页面加载的更快一点,通过将部分静态资源保存到本地这种方式,从而减少网络请求,提升用户体验的一种手段。二.使用缓存有什么弊端凡事有利必有弊,缓存也是。使用缓存

    2022年7月1日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号