我们正在着手将Selenium整合到我们的网络项目中(我们已经做了很长时间的事情)。
我已经阅读了一些文章,争论是否使用C#,node,python等与selenium,但即使这些文章倾向于完成说你最熟悉的语言。这将使我们坚定地进入C#阵营。我对这种方法很满意,因为它为我提供了我习惯的所有东西 - VS,Intelkisense,Debugger等,但是我脑子里的一个小问题告诉我,使用一种JavaScript可以提供更好的访问权限。 DOM中的元素与C#相比 - 我可能希望测试检查元素上的填充,元素的高度或元素的x / y位置。在标准的Web编程中,你永远不会想到尝试在c#中评估这些检查 - 你总是选择JavaScript,所以我的问题是使用JavaScript来编写selenium测试实际上是否提供比C#更强大的功能?有人可以建议吗?
非常感谢 dotdev
答案 0 :(得分:0)
你认为正确选择你最熟悉的语言是最好的政策。
Selenium 的当前版本通过五种主要的语言绑定艺术(几个次要)发布,如下所示:
值得一提的是, Selenium 团队在通过不同的语言绑定艺术发布 Selenium 库时非常谨慎。所有 Selenium客户端都与新的/更新/增强/错误修复功能相同。因此,无论您使用的 Selenium Language Bindings Art ,您的体验都将无动于衷。
但设计/编码/实施框架的效率 Selenium 可以在效果和性能方面产生很大的不同。因此,选择 Selenium Language Bindings Art 的选择有效归结为选择您最熟悉的语言。
早期的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
祝你好运!