我将负责 Angular 应用程序的测试自动化。我知道我们有一个 Protractor 工具,但我更喜欢带有 java 的 webdriver(感觉比 javascript 和 Protractor 更好)。我可以将 java 与 webdriver 一起使用,还是我必须使用 Protractor 来完成它,因为 selenium 无法处理它?</p>
最佳答案
当然,您仍然可以使用常规的 Java selenium 绑定(bind)来测试 AngularJS 应用程序。只是 Protractor
更适合/更方便地用于特定的 AngularJS 应用程序,因为它提供了几个独特的东西:
- 它与 Angular 同步 - 它总是知道 Angular 何时“准备好”与之交互
- 它提供 Angular 特定的定位器,例如
by.model
,by.binding
,by.repeater
等等 - 它可以让您轻松地mock AngularJS modules在飞行中
- 它由 Google 开发人员(当然还有 github 社区)开发和支持 - 这意味着它与 Angular 开发周期同步
- 它有一个非常好的和文档化的 API
- 还有更多
了解 Protractor
实际上是 WebDriverJS
- JavaScript selenium 绑定(bind)的包装器也很重要。而且,作为旁注,Protractor
也可用于测试非 Angular 应用(只需关闭同步)。
还有ngWebDriver
可能实际上是您的解决方案的软件包:
We have taken JavaScript from Angular's Protractor project. While ngWebDriver perfectly compliments the Java version of WebDriver, it has to pass JavaScript up to the browser to inteoprate with Angular, and the Protractor project has done the hard work (including testing) to make that solid, and ngWebDriver benefits from that work.
另见:
关于用于角度应用程序的 Java webdriver 不是 Protractor ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36133201/