首页 > 解决方案 > 空手道 - 多个场景在一个功能中运行 - 参考错误(重试)

问题描述

我使用空手道软件,我想将一些场景包含在一个功能中 - 在非并行状态下运行它,需要按照从上到下的顺序运行场景。

我有以下代码:

@parallel=false
Feature: TC_C - Component detail check

Scenario: Check component detail

    # Login (prerequisity)
    * call read('classpath:ui/common/login.feature')
    * waitForUrl('/applications')
    * match driver.url == baseUrl + 'applications'

    # Step 0 (Create an application and a component inside)
    * call read('classpath:ui/common/applicationCreation.feature')
    * call read('classpath:ui/common/componentCreation.feature')

Scenario: Step1

    # Step 1
    When retry(20, 3000).click('//*[normalize-space(text()) = \'' + compName + '\']/../td/a/span[2][normalize-space(text()) = \'Detail\']/..')
    Then waitForText('.card-header', 'Component Detail')

“场景:检查组件详细信息”成功通过。

问题在于发生错误的第二种情况的第一行:

com.intuit.karate.exception.KarateException: TC_C.feature:18 - javascript evaluation failed: retry(20, 3000).click('//*[normalize-space(text()) = \'' + compName + '\']/../td/a/span[2][normalize-space(text()) = \'Detail\']/..'), ReferenceError: "retry" is not defined in <eval> at line number 1

重试似乎有问题,我不知道如何在没有错误的情况下运行它......

我已经在不同的地方尝试过,但是即使没有分离到更多的场景,它也会正常工作。如果没有分成两个场景并且只有一个场景存在,那么一切正常。

我这样做的原因是我想拥有包括多个场景(大纲场景或标准场景)在内的功能

如果您有任何想法,我会很高兴。谢谢你。

标签: automated-testskarate

解决方案


的论点click()似乎真的很复杂,我敢肯定它的引号嵌套是错误的。所以请尝试解决这个问题。

例如,这不起作用:

* retry(20, 3000).click('{}Detail')

如果您仍然卡住,请按照以下流程操作:https ://github.com/intuit/karate/wiki/How-to-Submit-an-Issue


推荐阅读