【问题标题】:Does Robot Framework support Angular2?Robot Framework 是否支持 Angular2?
【发布时间】:2017-05-18 15:04:18
【问题描述】:

我正在尝试使用 Robot Framework 自动化 Angular 2 应用程序。

但是,它在我的测试用例中没有找到任何 HTML 属性(id 或类)。

它在错误下面抛出一个错误:

doesn't match elements(id=accountinfo)

【问题讨论】:

  • 我尝试使用机器人框架自动化 Angular 2 应用程序。它没有找到任何关键词。它给出了类似的错误。不匹配元素(id=accountinfo)
  • 你能解释一下你是如何安装框架的,你是如何调用测试用例中的角度元素的。甚至测试用例就足够了......我们需要一些东西......
  • 我添加了扩展 selenium 2 库,我们正在通过 id、xpath、css 等识别元素... Value Error Element locator id=XXXXXX xpath=//XXXXXX did not match any elements
  • “不匹配元素(id=accountinfo)”并不意味着“它没有找到任何关键字”。如果机器人找不到关键字,你会得到一个完全不同的错误,而且这些都与 angular2 无关。

标签: angular testing automation robotframework


【解决方案1】:

在过去的几个月里,我一直在使用 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 语法。

自我编辑:差点忘了,但在 HTML 中,id 不使用与 Robot Framework 相同的语法。 id=someId 不一定等于 id="someId"。尝试在 ID 的文本两边加上引号。

附加信息:在我最近的 Angular 经验中,ID 和 dom 都可以是可变的。同一个定位器可能适用于一个测试,但如果您在它之前运行另一个测试,它将无法正常工作。

【讨论】:

    【解决方案2】:

    机器人框架将支持 angular2

    是的,它的支持!

    当我们运行正常的本地服务器时它不起作用,然后我尝试在webpack-dev-server运行angular 2应用程序

    然后它工作正常。

    添加 webpack 开发依赖并运行 npm install

       "devDependencies": {
        "webpack": "2.2.1",
        "webpack-dev-server": "2.4.1",
        "webpack-merge": "^3.0.0"
    }

    【讨论】:

      【解决方案3】:

      首先尝试在开发人员控制台中使用您的 xpath(或其他选择器)(例如 Chrome 开发控制台 - 在页面上按 F12,在“元素”中按 CTRL+F 并将您的 xpath(选择器)复制到搜索行)。如果此处未找到该元素,则说明选择器错误...否则请尝试在机器人代码中使用一些等待(例如,等到元素可见)

      【讨论】:

      • 我使用了 x 路径(选择器)它没有找到,但我可以找到单词。
      猜你喜欢
      • 2019-06-25
      • 2018-03-01
      • 2022-12-04
      • 1970-01-01
      • 2018-02-28
      • 2018-06-04
      • 2020-06-21
      • 1970-01-01
      相关资源
      最近更新 更多