RobotFrameWork:如何检查组件块顶行中的动态元素

时间:2019-02-11 10:41:54

标签: robotframework

因此,有一个网站: https://www.investing.com/equities/pre-market

网站上有一个ID为ID的区块:components_block

那个方块有行...

如何检查在“ Chg。%”列中元素在值/数字前是否带有+号。

我发现这是第二节TR,然后是第六节课。...

那我该怎么做?

我尝试过:

Should Match Regexp  bold pidExt-23176-pcp greenFont  ^[+]

(但是我不喜欢这种解决方案,因为类名可以更改)

顺便说一句,测试结果说:不匹配 而当我在https://pythex.org/测试正则表达式时,效果很好。

那么什么不匹配?找不到该类,还是正则表达式的结果不正确?

我找到了一些接近的东西(r)?: http://seleniummaster.com/sitecontent/index.php/selenium-robot-framework-menu/selenium-robot-framework-python-menu/204-selenium-robot-framework-table-verification

Table Cell Should Contain    xpath=//div[@id='components_block']/table    1 1

2 个答案:

答案 0 :(得分:1)

Should Match Regexp的工作原理是检查字符串是否与给定的正则表达式匹配-您必须首先获取元素的文本,然后使用此关键字:

${the text}=    Get Text    your_locator
Should Match Regexp    ${the text}    ^[+]

regexp方法非常好;您还可以使用BuiltIn库中的关键字,在这种情况下,该关键字将进行验证:

Should Start With    ${the text}    +

答案 1 :(得分:0)

这是我为您提供的解决方案。我下面的解决方案会将所有“ +”输出存储到列表中。完成的步骤是:

1。找到第六列的xpath定位符(Chg。%)。然后,查找其中的几行。当我检查时发现10行。请参见下面的代码。请注意我如何使用此关键字:GET ELEMENT COUNT

${xpath}=   Set Variable /html[1]/body[1]/div[5]/section[1]/div[6]/table[1]/tbody[1]/tr//td[6]
${rows_found}=  Get Element Count   xpath=${xpath}

2。使用关键字CREATE LIST

创建一个空列表
${res_list}=    Create List

2。使用FOR-IN RANGE循环遍历这10行,并且仅在结果具有“ +”文本/字符时将结果存储到列表中。当我使用GET TEXT关键字时,在每次迭代期间,我都会在xpath中传递tr [$ {row}]。请注意我如何使用以下关键字:RUN KEYWORD AND RETURN STATUSSHOULD START WITHAPPEND TO LIST

: FOR ${row} IN RANGE 1  ${rows_found}+1
     ${row_text}=   Get Text    xpath=/html[1]/body[1]/div[5]/section[1]/div[6]/table[1]/tbody[1]/tr[${row}]/td[6]
     ${text_contains_plus}= Run Keyword and Return Status   Should Start With   ${row_text} +
     Run Keyword If  '${text_contains_plus}' == 'True'  Append To List  ${res_list} ${row_text}

Log To Console  ${res_list}
Log ${res_list}

但是,如果您需要存储两个变量(2),第6列中带有“ +”的公司名称及其文本值(例如:+20.11),那么您需要在脚本中添加几行以上,但最优雅的方法是在ROBOT Framework中使用DICTIONARY关键字。请参考以下链接:http://robotframework.org/robotframework/latest/libraries/Collections.html