如果错误无效语法,则运行关键字(<string>,第1行)

用户名

我是这个run关键字if方法的新手。

我想根据特定页面输入其他号码。

例如,如果检测到page1元素,则输入数字1;如果page2,则输入数字2。

*** Settings ***
Library    Selenium2Library
Library    Collections
Resource   ../Resources/nine-res-work.robot

*** Variables ***
${LOGIN-BUTTON-NUMBER-1}   ${ANDROID-WIDGET-TEXT-VIEW}\[@resource-id="com.test.abc.work.cac:id/btn_number" and @text="1"]
${LOGIN-BUTTON-NUMBER-2}   ${ANDROID-WIDGET-TEXT-VIEW}\[@resource-id="com.test.abc.work.cac:id/btn_number" and @text="2"]
${LOGIN-BUTTON-NUMBER-3}   ${ANDROID-WIDGET-TEXT-VIEW}\[@resource-id="com.test.abc.work.cac:id/btn_number" and @text="3"]

${LOGIN-PAGE-HEARDER-page1}         ${ANDROID-WIDGET-TEXT-VIEW}\[@resource-id="com.test.abc.work.cac:id/headerText" and @text="Enter your PIN."]
${LOGIN-PAGE-HEARDER-page2}               ${ANDROID-WIDGET-TEXT-VIEW}\[@resource-id="com.test.abc.work.cac:id/headerText" and @text="Enter your passcode."]


*** Keywords ***
Smart Card Login
    Run Keyword If  ${LOGIN-PAGE-HEARDER-page1} == 'PASS'   Tap     ${LOGIN-BUTTON-NUMBER-1}
    Run Keyword If  ${LOGIN-PAGE-HEARDER-page2} == 'PASS'   Tap     ${LOGIN-BUTTON-NUMBER-2}

*** Test Cases ***
Test 1
    Launch Application
    Smart Card Login

错误

Test 1  | FAIL |
Evaluating expression '//android.widget.TextView[@resource-id="com.test.abc.work.cac:id/headerText" and @text="Enter your PIN."] == 'PASS'' failed: SyntaxError: invalid syntax (<string>, line 1)

我尝试了另一种方法,这次没有错误,但是tap操作没有执行。

*** Variables ***
${LOGIN-BUTTON-NUMBER-1}   ${ANDROID-WIDGET-TEXT-VIEW}\[@resource-id="com.test.abc.work.cac:id/btn_number" and @text="1"]
${LOGIN-BUTTON-NUMBER-2}   ${ANDROID-WIDGET-TEXT-VIEW}\[@resource-id="com.test.abc.work.cac:id/btn_number" and @text="2"]
${LOGIN-BUTTON-NUMBER-3}   ${ANDROID-WIDGET-TEXT-VIEW}\[@resource-id="com.test.abc.work.cac:id/btn_number" and @text="3"]

${LOGIN-PAGE-HEARDER-page1}         ${ANDROID-WIDGET-TEXT-VIEW}\[@text="Enter your PIN."]
${LOGIN-PAGE-HEARDER-page2}               ${ANDROID-WIDGET-TEXT-VIEW}\[@text="Enter your passcode."]


*** Keywords ***
Input App Passcode
    Tap     ${LOGIN-BUTTON-NUMBER-2}


*** Test Cases ***
Launch App
    Open Nine Folders Application
    Sleep   5s

Input Password
    ${Page1} =    Page Should Contain Element    ${LOGIN-PAGE-HEARDER-page1}
    Run Keyword If      '${Page1}' == 'PASS'      Input App Passcode
我认为考力士

您遇到语法错误,因为Run Keyword If期望有效的Python条件作为第一个参数。在您的代码中情况并非如此。在您的情况下,这就是发生的情况,假设${ANDROID-WIDGET-TEXT-VIEW}view在此示例中:

Run Keyword If  ${LOGIN-PAGE-HEARDER-page1} == 'PASS'   Tap     ${LOGIN-BUTTON-NUMBER-1}

这是

Run Keyword If  view\[@resource-id="com.test.abc.work.cac:id/headerText" and @text="Enter your PIN."] == 'PASS'   Tap     ${LOGIN-BUTTON-NUMBER-1}

这等效于以下Python代码:

if view\[@resource-id="com.test.abc.work.cac:id/headerText" and @text="Enter your PIN."] == 'PASS':
    call_tap_function(LOGIN_BUTTON_NUMBER_1)

那里有很多无效字符,因为该字符串未包含在中'因此正确的应该是:

Run Keyword If  '${LOGIN-PAGE-HEARDER-page1}' == 'PASS'   Tap     ${LOGIN-BUTTON-NUMBER-1}

它将转换为:

if 'view\[@resource-id="com.test.abc.work.cac:id/headerText" and @text="Enter your PIN."]' == 'PASS':
    call_tap_function(LOGIN_BUTTON_NUMBER_1)

请注意,这永远不会等于PASS


至于第二种方法,Page Should Contain Element它没有返回值,它将失败或执行将照常进行。要实现所需的功能,您应该使用“运行关键字并返回状态”,如果被调用的关键字已通过或失败,它将返回。

Input Password
    ${Page1} =    Run Keyword And Return Status    Page Should Contain Element    ${LOGIN-PAGE-HEARDER-page1}
    Run Keyword If      ${Page1}      Input App Passcode

如果传递了${Page1}变量这里就是变量,也就是如果登录页面标题page1在页面上。truePage Should Contain Element

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python:第1行上的无效语法(文件<string>)

来自分类Dev

我收到来自Retrofit Expected BEGIN_ARRAY的响应错误,但在第1行第1列路径$ STRING

来自分类Dev

清单:第1行,第1列,语法错误

来自分类Dev

E0001:无效语法(<string>,第 6 行)

来自分类Dev

消息156,级别15,状态1,第2行关键字“ ORDER”附近的语法不正确

来自分类Dev

第1行:如果或附近出现语法错误

来自分类Dev

第1行的SQL语法错误

来自分类常见问题

改造后的请求错误-java.lang.IllegalStateException:预期为BEGIN_OBJECT,但在第1行第1列路径$ STRING

来自分类Dev

JSON 错误:由:java.lang.IllegalStateException:预期为 BEGIN_OBJECT 但在第 1 行第 1 列路径 $ 处为 STRING

来自分类Dev

如果第[1]行中的第[0]行打印行

来自分类Dev

如果关键字2不存在,则删除关键字1之后的行

来自分类Dev

Mysql错误-第1行接近'1'

来自分类Dev

错误消息156,级别15,状态1,关键字'CONTINUE'附近的语法不正确

来自分类Dev

如何解决文件“ <输入>”,第1行语法错误:语法无效?

来自分类Dev

第1行出现mysql错误'NULL'

来自分类Dev

Libsvm:第1行的输入格式错误

来自分类Dev

清单:第1行,第1列,语法错误。AWS错误

来自分类Dev

第1行出现错误:ORA-00911:无效字符ORA-06512:在第17行

来自分类Dev

jQuery脚本未在Internet Explorer中运行(第1行char 1上的语法错误)

来自分类Dev

未捕获的语法错误:意外令牌<第1行

来自分类Dev

第1行附近的VB MySQL语法错误

来自分类Dev

awk:第1行:>或附近的语法错误>

来自分类Dev

第 1 行错误:ORA-00911:无效字符

来自分类Dev

PHP的帮助?解析错误:语法错误,第6行出现意外T_STRING

来自分类Dev

PHP解析错误:语法错误,第X行出现意外T_STRING

来自分类Dev

解析错误:语法错误,第 53 行出现意外的“设置”(T_STRING)

来自分类Dev

解析错误:第1行第2列的无效数字文字(bash)

来自分类Dev

route.php第20行中的FatalErrorException:语法错误,意外的“获取”(T_STRING)

来自分类Dev

第52行中的FatalErrorException:语法错误,意外的“高度”(T_STRING)

Related 相关文章

  1. 1

    Python:第1行上的无效语法(文件<string>)

  2. 2

    我收到来自Retrofit Expected BEGIN_ARRAY的响应错误,但在第1行第1列路径$ STRING

  3. 3

    清单:第1行,第1列,语法错误

  4. 4

    E0001:无效语法(<string>,第 6 行)

  5. 5

    消息156,级别15,状态1,第2行关键字“ ORDER”附近的语法不正确

  6. 6

    第1行:如果或附近出现语法错误

  7. 7

    第1行的SQL语法错误

  8. 8

    改造后的请求错误-java.lang.IllegalStateException:预期为BEGIN_OBJECT,但在第1行第1列路径$ STRING

  9. 9

    JSON 错误:由:java.lang.IllegalStateException:预期为 BEGIN_OBJECT 但在第 1 行第 1 列路径 $ 处为 STRING

  10. 10

    如果第[1]行中的第[0]行打印行

  11. 11

    如果关键字2不存在,则删除关键字1之后的行

  12. 12

    Mysql错误-第1行接近'1'

  13. 13

    错误消息156,级别15,状态1,关键字'CONTINUE'附近的语法不正确

  14. 14

    如何解决文件“ <输入>”,第1行语法错误:语法无效?

  15. 15

    第1行出现mysql错误'NULL'

  16. 16

    Libsvm:第1行的输入格式错误

  17. 17

    清单:第1行,第1列,语法错误。AWS错误

  18. 18

    第1行出现错误:ORA-00911:无效字符ORA-06512:在第17行

  19. 19

    jQuery脚本未在Internet Explorer中运行(第1行char 1上的语法错误)

  20. 20

    未捕获的语法错误:意外令牌<第1行

  21. 21

    第1行附近的VB MySQL语法错误

  22. 22

    awk:第1行:>或附近的语法错误>

  23. 23

    第 1 行错误:ORA-00911:无效字符

  24. 24

    PHP的帮助?解析错误:语法错误,第6行出现意外T_STRING

  25. 25

    PHP解析错误:语法错误,第X行出现意外T_STRING

  26. 26

    解析错误:语法错误,第 53 行出现意外的“设置”(T_STRING)

  27. 27

    解析错误:第1行第2列的无效数字文字(bash)

  28. 28

    route.php第20行中的FatalErrorException:语法错误,意外的“获取”(T_STRING)

  29. 29

    第52行中的FatalErrorException:语法错误,意外的“高度”(T_STRING)

热门标签

归档