Selenium C#弱点

时间:2018-03-21 00:22:31

标签: node.js selenium

我们正在着手将Selenium整合到我们的网络项目中(我们已经做了很长时间的事情)。

我已经阅读了一些文章,争论是否使用C#,node,python等与selenium,但即使这些文章倾向于完成说你最熟悉的语言。这将使我们坚定地进入C#阵营。我对这种方法很满意,因为它为我提供了我习惯的所有东西 - VS,Intelkisense,Debugger等,但是我脑子里的一个小问题告诉我,使用一种JavaScript可以提供更好的访问权限。 DOM中的元素与C#相比 - 我可能希望测试检查元素上的填充,元素的高度或元素的x / y位置。在标准的Web编程中,你永远不会想到尝试在c#中评估这些检查 - 你总是选择JavaScript,所以我的问题是使用JavaScript来编写selenium测试实际上是否提供比C#更强大的功能?有人可以建议吗?

非常感谢 dotdev

2 个答案:

答案 0 :(得分:0)

你认为正确选择你最熟悉的语言是最好的政策。

Selenium 的当前版本通过五种主要的语言绑定艺术(几个次要)发布,如下所示:

  • 爪哇
  • C#
  • 红宝石
  • 的Python
  • Javascript(节点)

值得一提的是, Selenium 团队在通过不同的语言绑定艺术发布 Selenium 库时非常谨慎。所有 Selenium客户端都与新的/更新/增强/错误修复功能相同。因此,无论您使用的 Selenium Language Bindings Art ,您的体验都将无动于衷。

但设计/编码/实施框架的效率 Selenium 可以在效果和性能方面产生很大的不同。因此,选择 Selenium Language Bindings Art 的选择有效归结为选择您最熟悉的语言

A bit of Selenium History

早期的Selenium开发为 Javascript库,可以推动与网页的互动,从而允许他自动重新运行针对多个浏览器的测试。该库最终成为 Selenium Core

虽然当时 Selenium 是一个巨大的工具,但它有它自己的缺点。由于基于Javascript的Automation Engine 以及浏览器适用于 Javascript 的安全限制,很多事情都无法实现。

2006年,Google的一名工程师开发了一个测试工具,该工具使用浏览器和操作系统的本机方法直接与浏览器对话,以避免沙盒Javascript环境的限制,即 WebDriver 我们知道截至今天。

因此,结论可以是 NodeJS 它的优势你!!!

答案 1 :(得分:0)

对于初学者来说,Selenium WebDriver可以在测试运行过程中执行javascript

IWebDriver myDriver = new WebDriver();
JavascriptExecutor js = (JavascriptExecutor) myDriver;  
js.executeScript(yourJavascriptHere);

更重要的是,我肯定会建议您使用您和您的团队最熟悉的编程语言。

以下是我的一些原因:

  • 正如您所提到的,您可以使用您熟悉的工具。当你纠正在UI测试运行中发现的错误时,在同一个IDE中工作是一个巨大的优势。

  • 您也可以为您的网络应用程序编写重用实用程序库。您可能仍需要使用日志记录,数据访问和其他基础设施

  • 更轻松的部署。能够在构建

  • 上运行所有测试
  • 创建UI测试框架时,使用强类型对象进行继承非常方便。基本上所有的HTML路径,CSS等都可以被抽象出来。

John Sonmez在Pluralsight上有一个关于使用C#创建自动化测试框架的精彩课程。如果Pluralsight是您可以使用的资源,我建议您查看。

https://app.pluralsight.com/library/courses/automated-testing-framework-selenium/table-of-contents

祝你好运!