机器人框架+ Selenium2Library与AngularJS 2.0

时间:2015-07-10 05:15:44

标签: selenium-webdriver robotframework selenium2library

目前我正在使用Robot Framework + Selenium2Library进行UI自动化。我们将在将UI推向市场后将其迁移到AngularJS 2.0。

那么对于Robot Framework + Selenium2Library与AngularJS 2.0的兼容性有任何想法吗?

4 个答案:

答案 0 :(得分:2)

我一直在为一些Web应用程序使用selenium2library和机器人框架,一旦我们开始使用angularJs开发应用程序,selenium2library就会出现一些问题,例如定位元素和确定角度加载完成的时间。我做了一些挖掘,发现了 extended selenium2library ,这是在AnugularJs的支持下进行的。所以这个库有“Wait Until Angular Ready”之类的关键词,因此使得编写测试用例与以前的机器人框架和selenium2library关键字一样简单。

答案 1 :(得分:2)

  

那么对于Robot Framework + Selenium2Library与AngularJS 2.0的兼容性有任何想法吗?

我敢说 - 你不应该面对任何重大问题。

在我目前的项目中,我使用RF作为一个使用React.js的系统,再次,“我敢说”:),甚至更加极端,在DOM上没有直接反馈机制的疯狂东西 - WebDriver - 到目前为止,我没有任何实际问题。根据我迄今为止的经验提出的一些建议:

  • 严重依赖Selenium2Library关键字“Wait Until Element *”(可见,禁区等)。 他们每隔200ms轮询一次DOM,并给出关键字并测试执行节奏 - 一旦UI根据操作做出反应和更新,它将继续。 另外,它们是时间限制的,如果SUT 没有根据期望在时间限制内行动,它将无法通过测试用例 - 并且,这为您提供开箱即用的验证功能和/或测试用例实际上做了你对它们的期望(这在每个自动化系统中都是必须的:)

  • 我主要使用xpath作为位置策略(虽然个人更喜欢css),尤其是在阅读了一些关于css如何在更新后无法匹配元素的恐怖故事等。 性能差异可以忽略不计 - 在我做的基本测试中不存在,但xpath为您提供了其他好处 - 上了树,按文本值定位元素([contains(text(), "text_placeholder")]已经多次保存我的混乱{ {1}}反应的疯狂);其他,我现在还记不起来了。)。

希望这有点帮助 - 你或其他任何人,RF + SE =自动野兽:)

答案 2 :(得分:0)

Robot Framework + Selenium2Library几乎独立于用于构建UI的框架。它应该工作,只要您的应用程序是基于Web的,并提供一些方法来定位您的元素(ID,ID,xpath等)。所以,是的,您将能够通过UI使用AngularJS 2.0进行测试自动化

答案 3 :(得分:0)

我对Robot Framework + AngularJS有不同的策略,但它只是有用,因为我们的Robot Framework代码在Linux VM的后台运行,因此速度并不重要。我使用名为Slow Down的自定义关键字,如下所示:

Click Element   ${THIS_ELEMENT}
    Slow Down   ${SLOW_TIME}

通过在每次单击和文本输入之后(在每次点击之前也可以),我能够告诉整个测试减速以使浏览器的速度与单个变量相匹配。我发现,与Selenium2LibraryExtended配对时,这比Wait Until Element *个关键字更可靠。不,我不知道为什么会这样。