因此,有一个网站: https://www.investing.com/equities/pre-market
网站上有一个ID为ID的区块:components_block
那个方块有行...
如何检查在“ Chg。%”列中元素在值/数字前是否带有+号。
我发现这是第二节TR,然后是第六节课。...
那我该怎么做?
我尝试过:
Should Match Regexp bold pidExt-23176-pcp greenFont ^[+]
(但是我不喜欢这种解决方案,因为类名可以更改)
顺便说一句,测试结果说:不匹配 而当我在https://pythex.org/测试正则表达式时,效果很好。
那么什么不匹配?找不到该类,还是正则表达式的结果不正确?
Table Cell Should Contain xpath=//div[@id='components_block']/table 1 1
答案 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 STATUS
,SHOULD START WITH
,APPEND 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