Robot Framework是否支持Angular2?

时间:2017-01-04 10:42:42

标签: angular automation robotframework

我正在尝试使用Robot Framework自动化Angular2应用程序。但是,它在我的测试用例中找不到任何关键字。

它会抛出一个错误:

does't match elements(id=accountinfo)

2 个答案:

答案 0 :(得分:0)

过去几个月我一直在使用Robot Framework自动化Angular应用程序。这里有一些可以帮助你的工具。

首先,Selenium2Library实际上已经过时了。有一个新版本ExtendedSelenium2Library,它包含新的关键字并支持Angular应用程序。要切换,请将代码中文本“Selenium2Library”的所有实例更改为“ExtendedSelenium2Library”。您可能还需要单独下载它,但它已经有一段时间了,所以我不记得了。

其次,您需要学习如何在至少某种程度上读取和写入xpath。我不会在这里完全解释它,但是这里有一个工具可以为你做大量的工作。它不会一直有效,但它大部分时间都适用于包含文本的元素。

Click Element by Text
    #   EXAMPLE USAGE
    #   Click Element by Text   "text on the element"   id="midlevellocationoftext"     button
    #   NOTE:   Does not account for extra spaces at the beginning or end, text must be exact
    #   NOTE:   Allows for injections on purpose to allow user to be more exact with their location
    [Arguments]     ${text}     ${location}=*   ${elementtype}=*
    Click Element   xpath=//*[@${location}]//${elementtype}[text()=${text}]

如果你没有它的中间位置,但确实有按钮类型,请输入*。这是“我不知道。”的xpath语法。

SELF-EDIT:几乎忘了,但在HTML中,id不使用与Robot Framework相同的语法。 id = someId不一定等于id =“someId”。尝试在ID的文本周围加上引号。

附加信息:在我最近的Angular体验中,ID和doms都可以变化。同一个定位器可能在一个测试中起作用,但是如果你在它之前运行一个不同的测试它将无法工作。

答案 1 :(得分:-1)

首先尝试在开发人员控制台中使用你的xpath(或其他选择器)(例如Chrome开发者控制台 - 在页面上点击F12,在"元素"点击CTRL + F并复制你的xpath(选择器)到搜索线)。如果在这里找不到元素,则选择错误...否则尝试在机器人代码中使用一些等待(例如,等到元素可见)