RobotFramework: область видимости переменных - PullRequest
0 голосов
/ 20 сентября 2018

У меня проблема с переменной $ {testAccount}.Когда я изменяю эту переменную в ключевом слове пользователя «Изменить имя пользователя», журнал информирует меня о том, что изменение является правильным.Когда я использую эту переменную в ключевом слове «Изменить активацию», она равна начальному значению, а не измененному.

Вот сценарий, который я написал:

*** Keywords ***
Modify user name  
    Set Global Variable    ${testAccount}
    Wait Until Element Is Visible    xpath=//a[@ng-click="openCreateEditModal(tenant)"]  
    Click Element    //td[text()='${testAccount}']/following-sibling::td//a[@ng-click="openCreateEditModal(tenant)"]  
    Wait Until Page Contains    Edit an account  
    Click Element    xpath=//input[@ng-model="tenant.name"]    
    Press Key    xpath=//input[@ng-model="tenant.name"]    \\08  
    ${testAccount}=    Get Substring    ${testAccount}    \    -1
    Click Button    xpath=//button[@ng-click="valid()"]  
    Wait Until Page Contains    ${testAccount}

Change activation  
    Wait Until Element Is Visible    xpath=//a[@ng-click="openCreateEditModal(tenant)"]  
    Click Element    //td[text()='${testAccount}']/following-sibling::td//a[@ng-click="openCreateEditModal(tenant)"]  

Я пыталсяиспользовать ключевые слова «Set Global Variable» или «Set Suite Variable», но это не работает лучше.Может быть, я их не правильно использую.

Не могли бы вы помочь мне разобраться?

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Вы можете использовать Set Suite Variable Keyword.

Перейдите по ссылке ниже http://robotframework.org/robotframework/latest/libraries/BuiltIn.html#Set%20Suite%20Variable

Также используйте инструкцию возврата в конце первого ключевого слова «Изменить имя пользователя» и использовать переменную »$ {testAccount} 'в качестве аргумента во втором ключевом слове «Изменить активацию»

Проверьте приведенный ниже код.

Modify user name  
  Set Suite Variable   ${testAccount}
  Wait Until Element Is Visible    xpath=//a[@ng- 
  click="openCreateEditModal(tenant)"]  
  Click Element    //td[text()='${testAccount}']/following-sibling::td//a[@ng- 
  click="openCreateEditModal(tenant)"]  
  Wait Until Page Contains    Edit an account  
  Click Element    xpath=//input[@ng-model="tenant.name"]    
  Press Key    xpath=//input[@ng-model="tenant.name"]    \\08  
  ${testAccount}=    Get Substring    ${testAccount}    \    -1
  Click Button    xpath=//button[@ng-click="valid()"]  
  Wait Until Page Contains    ${testAccount}

  Return   ${testAccount}

Change activation ${testAccount}

 Wait Until Element Is Visible    xpath=//a[@ng-click="openCreateEditModal(tenant)"]  
 Click Element    //td[text()='${testAccount}']/following-sibling::td//a[@ng- 
 click="openCreateEditModal(tenant)"]
0 голосов
/ 20 сентября 2018

Просто добавьте ключевое слово «Set Global Variable» после строки, которая изменяет содержимое переменной $ {testAccount}.Таким образом, новое содержимое этой переменной будет учитываться в следующем тестовом примере, пока оно не изменится снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...