我已经设置了Selenium webdriver框架来处理AngularJS应用程序。但是,我正在使用很多等待和Thread.sleep(),这使我的脚本变得脆弱。
我听说过ngWebdriver和Protractor,它们可以很好地执行AngularJS Application的自动化。
我对Java有所了解,但不了解JavaScript。
我应该使用ngWebDriver还是学习JavaScript来实现Protractor?
答案 0 :(得分:6)
我认为ngWebDriver能够处理您面临的问题。 WebDriver2.0的最大问题在于它无法处理异步元素调用以及ngWebDriver进入图片的位置,代码new NgWebDriver(driver).waitForAngularRequestsToFinish();
将满足您的需求。
然而,如果您对java脚本的自动化脚本感到满意,那么Protractor将是唯一的最佳选择。 但是,您也应该考虑其他一些点,如用于Java脚本的IDE记事本或NP ++将不是一个好的选择,因为它不支持关键的意义,一些最好的IDE也支付(如webstorm),而你可以做一些简单的黑客并使用eclipse作为编辑器,但在此之前你还应该考虑量角器的范围,因为你可以看到java脚本框架的快速增长。客户端JS框架的增长速度比以往任何时候都快。你现在也必须考虑你的职业前景,因为现在ReactJS的增长速度超过了角度JS,然后你又必须打开webdriver(这取决于项目及其时间)要求)在不久的将来。
AngularJS - 于2010年推出 - Git-Hub明星48874&& ReactJS - 在2013年推出,但获得了41283 Git Hub明星
结论:更好的方法是使用ngWebDriver,给它一个机会并查看它是否满足您的要求然后坚持使用它,因为您已经设计了框架,否则除了量角器之外别无选择。
量角器初学者教程:https://www.youtube.com/watch?v=NV1J3oylMjU&list=PLhjFPlDbRmbtSGNlNGGgF1ZjFjWPK6AaO
答案 1 :(得分:3)
好吧,你必须为Protractor学习一些JavaScript。但我建议学习Protractor,因为它是由Google的Angular团队专门为Angular测试而制作的(尽管它也可以用于非Angular)。
量角器将消除所有这些等待和休眠,因为它使用隐式等待并在Angular与页面同步完成后触发测试。您还将获得有关Protractor框架的更多支持,文档和信息。
答案 2 :(得分:0)
Imo测试是同步活动。但量角器本质上是异步的。虽然它试图进行测试执行sychronus,但它并不总是sychronus。你有办法,解决方法使它成为sychronus。 IMO为什么选择asychrnous工具然后尝试使其同步,去java,ngwebdriver这是sychronus。 此外,如果你想使用staf等代理,java会更容易。 注意:我使用了量角器,计划给ngwebdriver一个去。
答案 3 :(得分:0)
如果您使用 Selenium 已经 Java ,那么您将无法使用量角器,因为它只适用于 JavaScript 。只需将 ngWebDriver 库添加到项目中,这将有助于您在当前框架内轻松处理角度应用程序。
答案 4 :(得分:0)
我是Angular测试的新成员。我的专长是Java开发,但是最近使用Selenium和Java进行测试自动化。但是需要测试基于Angular的网站/应用程序。我的Angular Developer朋友建议我学习 TypeScript(例如Java,OOP和所有),并与 Cypress框架一起使用(更像是Selenium,开放源代码,直接在浏览器中工作,而无需中间语言指令翻译)。
这只是意见。