11个基本的硒面试问题 *
最优秀的Selenium开发人员和工程师可以回答的基本问题. 在我们社区的推动下,我们鼓励专家提交问题并提供反馈.
现在就雇佣一名顶尖的Selenium开发人员面试问题
要等待页面加载,可以使用显式等待. 显式等待停止,直到满足某些特定条件. Although Thread.Sleep() 是一种显式等待的形式,线程在特定的时间内停止, 等待页面加载可能不是最可靠的方式.
例如,而不是使用这样的东西:
Thread.睡眠(30000);
当线程休眠30秒(30,000毫秒)时,可以使用以下方法:
WebDriverWait = new WebDriverWait(webDriver,30);
wait.直到(ExpectedConditions.visibilityOf (h1));
其中Selenium等待,直到给定的元素在页面上可见, 或在等待30秒后抛出TimeoutException.
Selenium中的页面对象模型是一种使用类来表示网页的设计模式. 类中的变量可以用来保存对网页上元素的引用, 方法可以用来实现行为. 这允许以一种优雅的方式实现既可读又易于维护和扩展的测试例程.
clickLoginButton ();
setCredentials (user_name user_password);
submitLoginForm ();
页面工厂用于初始化每个WebElement变量,并使用配置的“定位器”将其引用到实际网页上的相应元素。. 注释, 例如@FindBy, 可以用来定义查找元素的策略吗, 连同识别他们的必要资料:
@FindBy(如何=.的名字,使用= "用户名")
私有WebElement user_name;
可以找到更多关于页面对象模型和页面工厂的信息 here.
为了操作框架及其内容,您必须首先切换到它. 这类似于你必须切换到不同的页面才能与之交互:
driver.switchTo().框架(指数);
… where index 是坐标系的从零开始的索引吗. 切换帧将所有进一步的交互通过驱动程序指向选定的帧. The frame 方法也适用于名称、元素ID和对已定位元素的引用.
要切换回默认帧,请使用 defaultContent 方法可采用:
driver.switchTo().defaultContent ();
申请加入Toptal的发展网络
并享受可靠、稳定、远程 自由Selenium开发人员职位
-
CSS选择器通常比XPath更容易阅读. 大多数前端开发人员可能已经很熟悉CSS选择器了.
-
对CSS选择器的支持在各种现代web浏览器中是相当一致的, 而他们的XPath引擎却不是这样.
-
CSS选择器比XPath工作得快.
出于各种原因, 比如上面列出的那些, Selenium“最佳实践”建议使用CSS选择器而不是XPath.
直接子:
An immediate child in XPath is defined indicated using “/”, while on CSS, it is indicated using “>”. 例如,使用XPath:
//div/p
使用CSS:
div > p
后代:
查找任何div元素(i.e. 段落元素出现在以div元素为根的子树中), 我们可以在XPath中使用“//”, 只是一个空白的CSS:
//div//p
div p
它定义了一个变量 sample 类型为WebElement, 并使用XPath搜索用一个包含文本值“data”的元素的引用来初始化它。.
这可以通过在聚焦的元素上模拟按键来实现. 一种方法是在web驱动对象上执行“actions”:
新的行动(webDriver).sendKeys(“文本”).perform();
另一种方法是先切换到活动元素,然后直接向它发送密钥:
webDriver.switchTo().activeElement ().sendKeys(“文本”);
无头驱动通常用于持续集成(CI)设置. 无头的司机, 比如PhantomJS, 提供所有标准的web浏览器功能, 但是在命令行中运行. 这些驱动程序基于命令行工具,不产生屏幕输出, 使它们成为完全自动化设置的理想选择.
能够直观地调查测试失败, 开发人员需要实现捕获屏幕截图的机制, 否则依赖于命令行输出.
就网页而言,绝对xpath从根元素开始:
html /头/身体/表/身体/ tr / th
另一方面,相对xpath通常以" // "开头:
/ /表/身体/ tr / th
尽管这两个xpath可能都引用某个网页上的相同元素, 前者更有可能因对页面所做的任何更改而中断. 例如, 将表移动到div元素内部将使绝对XPath无法定位该元素. 另一方面,相对XPath仍将继续工作.
面试不仅仅是棘手的技术问题, 所以这些只是作为一个指南. 并不是每一个值得雇佣的“A”候选人都能回答所有的问题, 回答所有问题也不能保证成为A级考生. 一天结束的时候, 招聘仍然是一门艺术,一门科学,需要大量的工作.
为什么Toptal
提出面试问题
提交的问题和答案将被审查和编辑, 并可能会或可能不会选择张贴, 由Toptal全权决定, LLC.
寻找Selenium开发人员?
寻找 硒的开发人员? 查看Toptal的Selenium开发人员.
Manoj Chavan
在IT行业工作超过20年,在多种商业模式中拥有广泛的开发和测试经验, Manoj精通当前的自动化技术, 比如硒, Appium, 和RestAssured. 他期待着为团队做出贡献,并分享他在新的和具有挑战性的项目中的经验.
Show MoreToptal连接 Top 3% 世界各地的自由职业人才.
加入Toptal社区.