使用Robot Framework

时间:2017-01-17 00:48:36

标签: selenium checkbox robotframework

我正在尝试确定页面加载时复选框的状态,如果未选中它们,则检查它们。我的目标是在继续测试页面之前建立一个已知状态。

我使用带有变量的run keyword unless关键字:

***Variable***  
${checked1}  checkbox should be selected  xpath=(//input[@name='allowfields'])[2]
${checked2}  checkbox should be selected  xpath=(//input[@name='allowsharing'])[2]  

***Test Cases***
Validate checkbox initial state
Run Keyword unless  ${checked1}  Click Element  xpath=(//input[@name='allowfields'])[2]
Run Keyword unless  ${checked2}  Click Element  xpath=(//input[@name='allowsharing'])[2]  

测试目前正在错误地传达以下信息:
应该选择评估表达式'复选框xpath =(//输入[@ name ='allowfields'])[2]'失败:语法错误:语法无效(,第1行)

有人能指出我正确的方向吗?

以下编辑... 感谢@Mohanapriya,我能够解析代码并提出了部分解决方案。自动化运行并返回PASS,但不会将复选框的状态从未选中状态更改为已选中状态。

以下是我部分工作的内容:

*** Keyword ***  
Configure Checkbox  
[Arguments]  ${Status_Locator}  ${Checkbox_Locator}  ${Excel_Value}  
${Is_Checkbox_Selected}  Run Keyword And Return Status  Checkbox Should Be Selected  ${Status_Locator}  ${Actual_Chkbx_Value}  Run Keyword If '${Is_Checkbox_Selected}'== 'True'  Set Variable  Yes  else if '${Is_Checkbox_Selected}'== 'False'  Set Variable  No  Log  ${Actual_Chkbx_Value}  Run Keyword If '${Excel_Value}'!='${Actual_Chkbx_Value}'  Click Element ${Checkbox_Locator}  
Click Button    css=button.primary.success

在失败时,骑行日志显示:
Starting test: Tests.Validate checkbox state 20170117 12:29:16.968 : FAIL : Variable '${Is_Checkbox_Selected}' not found. 20170117 12:29:16.969 : INFO : ${Is_Checkbox_Selected} = False 20170117 12:29:16.971 : INFO : Clicking button 'css=button.primary.success'.

有关如何纠正此问题的任何反馈意见?

1 个答案:

答案 0 :(得分:2)

Configure Checkbox
    [Arguments]    ${Status_Locator}    ${Checkbox_Locator}    ${Excel_Value}
    ${Is_Checkbox_Selected}=    Run Keyword And Return Status    Checkbox Should Be Selected    ${Status_Locator}
    ${Actual_Chkbx_Value}=    Run Keyword If    '${Is_Checkbox_Selected}'== 'True'    Set Variable    Yes
    ...    ELSE IF    '${Is_Checkbox_Selected}'== 'False'    Set Variable    No
    Log    ${Actual_Chkbx_Value}
    Run Keyword If    '${Excel_Value}'!='${Actual_Chkbx_Value}'    Click Element    ${Checkbox_Locator}

在这段代码中,我传递了三个参数。