具有两个单独场景且具有奇怪的Web定位器问题的功能文件

时间:2019-02-25 15:06:57

标签: cucumber-jvm cucumber-java serenity-bdd cucumber-serenity serenity-js

我有一个功能文件,其中有两种情况:一种用于登录网站,另一种在登录页面上执行某些操作。 如果仅在一种情况下安排功能文件,那么它可以正常工作,尤其是下面给出的第一个功能文件中突出显示的行。 但是,如果将相同的功能文件安排为具有两种情况,则即使在页面目标代码中,我也给出了相同的问题,这会导致Web定位器问题 一行代码来定位Web元素。

第一种情况(带有“大纲”)只是登录到网站。没有存储对象或任何东西。

第二种情况是尝试验证页面上的某些数据,例如是否填充了具有用户ID和日期的行。

问题出在第二个功能文件中,我在其中引入了第二个方案关键字,因为它是正确的 另一个单独的场景。

注意:-用于在两个位置(保持为SEPARATE PROJECTS)定位Web元素的代码相同

请帮助我确定问题所在。让我发疯。

######### ------此功能文件运行FINE .-----
markers

### ---此功能文件找不到Web元素(登录后的第一个)-#

Feature: Data Extract List Page

    In order to test DataHub UI, 

     I want to specify the features of Extract History Page



  **Scenario Outline:** Navigate to Extract History page from the List page 

    Given the User opens the PRAMA Datahub website

     When the User types in userId "<uId>" and pacman passcode " 
      <pacman_passcode>"

      And the User clicks on submit button

     Then the User lands on page "<title>"  



     When status column-cell has status "Ready" value

     And last run column-cell has userid and date populated (NOTE:working 
     fine)

     And the User clicks on last run column cell of first extract record

      Then the User is navigated to the Execution History 
       "execution_history" page



     When the execution history page shows "completed" status

     And the User clicks on extract record header

     Then verify number of records greater than zero

     And file name is a valid string



    Examples: 

      | uId | pacman_passcode .  | title   | 

      | xxx | kT7&)cP^jhK&xze    | Datahub |  

更新: 只是为了踢球,当我注释掉可疑的“场景”关键字和 @给出步骤,实际上没有任何新操作,找到了Web定位器,没有问题! 这里正在发生什么有趣的事情? 第一次登录时不会存储任何数据,什么也没有。 只需登录,就要求提供Web定位器。


**Feature:** Data Extract List Page

      In order to test DataHub UI, 

  I want to specify the features of Extract History Page



**Scenario:** User logs in to prama datahub website 

   Given the User opens the PRAMA Datahub website

   When the User types in userId "xxxxx" and pacman passcode 
    "kT7&)cP^jhK&"

    And the User clicks submit button

   Then the User lands on page "Datahub"



 **Scenario:**Navigate to Extract History page from the Extract List page

     Given User logs in to prama datahub website

     When status column-cell has status "Ready" value

     And last run column-cell has userid and date populated(NOTE: throwing 
    web element locator exception)

     And the User clicks on last run column cell of first extract record

    Then the User is navigated to the Execution History 
    "execution_history" page

1 个答案:

答案 0 :(得分:1)

此问题已解决。问题是由于未意识到Cucumber将每种情况都视为全新的浏览器会话*

  

(对我来说,这很奇怪,因为必须具有多种场景的功能   关于测试单个故事的知识。那你为什么要   销毁并重新启动,然后一次又一次登录到浏览器?

*)。但是从Serenity,我有一个配置,可以使浏览器会话在功能(serenity.restart.browser.for.each=feature)的整个生命周期中保持活动状态。现在,在调整每个方案的初始打开条件之后,一切都可以正常工作。 –