【问题标题】:Is Protractor the only solution to automate AngularJS web apps?Protractor 是自动化 AngularJS Web 应用程序的唯一解决方案吗?
【发布时间】:2018-07-06 15:05:55
【问题描述】:

我正在研究 selenium WebDriver,现在我遇到了 AngularJS 应用程序。从过去的几周开始,我一直在努力寻找动态 Web 元素的 Xpath,尤其是处理拖放。在 Google 上进行了大量研究后,我发现 Protractor 可以轻松完成这项工作,因为它包含许多 Angular 标签(例如:ng-bind/ng-model)。 有没有其他方法可以解决?

【问题讨论】:

  • 关于Protractor任何其他方式,您的具体问题是什么?

标签: javascript angularjs selenium xpath


【解决方案1】:

在后台,Proractor 还使用了 selenium 和 webdriver。

如果网页是 AngularJS 应用程序,您可以认为 Protractor 是 selenium 的包装器,并在编写自动脚本时提供一些优势。

1) 一个优势是提供一些定位器 API,例如:

  1. by.model() 通过 'ng-model` 属性查找元素
  2. by.bind()' fine elemet byng-bind`属性
  3. by.repeater()ng-repeater 属性查找元素

但是这些定位器API最终会转换成css选择器,你可以直接使用css选择器来archvie samve目标

2) 第二个优点是当它是 Angularjs 应用程序时自动等待

我从不使用这个优势,我怀疑自动等待在某些情况下无法按预期工作。

无论您使用 seleium Java、Protractor、selenium-webdriver、webdriverIO 还是其他工具/框架,都无法避免如何编写 xpath 或 css 选择器。所以在这一点上,Protractor 并没有比其他硒相关的工具/框架带来巨大的好处。

为了处理拖放,Protractor 也依赖于 selenium webdriver,因此其他与 selenium 相关的工具/框架也应该有 API 来做到这一点。

最后,Selenium 只关注浏览器中的 HTML,无论是 Angularjs、PHP、Sprint、Python、Ruby Web App,在浏览器中显示时都会转换为 HTML。所以任何与 selenium 相关的工具/框架都可以自动测试 AngularJs 应用程序。

【讨论】:

  • 抱歉回复晚了。但我的问题是我在 JAVA+Selenium 方面经验丰富,但要自动化 Angular Web 应用程序,我必须开始学习基于 javascript 的 Protractor。
  • 你可以认为 Protractor 是 Selenium 之上的一个包装器,所以你直接使用 Java+ Selenium 来自动化 Angular web app 是一个可行的工具。使用量角器不是强制性的选择。
  • 感谢您的建议。对我这样的初学者真的很有帮助。
猜你喜欢
  • 1970-01-01
  • 2010-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-24
  • 2011-11-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多