Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Robotframework Robot框架-在WebTable中搜索文本_Robotframework - Fatal编程技术网

Robotframework Robot框架-在WebTable中搜索文本

Robotframework Robot框架-在WebTable中搜索文本,robotframework,Robotframework,下面是cssselector和xpath #ctl00_MasterContentPlaceHolder_radGridSystemRoles_ctl00__0 > td:nth-child(3) //*[@id="ctl00_MasterContentPlaceHolder_radGridSystemRoles_ctl00__0"]/td[3] 这是WebTable的一部分,我想在表中搜索文本 增量如下 #ctl00_MasterContentPlaceHolder

下面是cssselector和xpath

#ctl00_MasterContentPlaceHolder_radGridSystemRoles_ctl00__0 > td:nth-child(3)
//*[@id="ctl00_MasterContentPlaceHolder_radGridSystemRoles_ctl00__0"]/td[3]
这是WebTable的一部分,我想在表中搜索文本

增量如下

#ctl00_MasterContentPlaceHolder_radGridSystemRoles_ctl00__1 > td:nth-child(3)
//*[@id="ctl00_MasterContentPlaceHolder_radGridSystemRoles_ctl00__1"]/td[3]

#ctl00_MasterContentPlaceHolder_radGridSystemRoles_ctl00__2 > td:nth-child(3)
//*[@id="ctl00_MasterContentPlaceHolder_radGridSystemRoles_ctl00__2"]/td[3]

如何搜索表中的每一行以查找文本?

XPath只是一个字符串,因此您可以自定义它以获得特定的行

例如:

*** Settings ***
Library    SeleniumLibrary


Test Teardown  Close Browser

*** Variables ***
${BROWSER}           Chrome
${URL}               https://www.rottentomatoes.com/top/bestofrt/
${TEXT TO SEARCH}    The Irishman (2019)
${NUMBER OF COLUMN}  ${3}
${NUMBER OF ROWS}    ${15}


*** Test Cases ***
Test search in table
    Open Browser  url=${URL}
    ...           browser=${BROWSER}
    ${found flag}=  Set variable  ${False}
    FOR  ${row number}  IN RANGE  1  ${NUMBER OF ROWS}
    ${field locator}=  Get field XPath  ${row number}
    Log  ${field locator}
    ${field text}=  Get text  ${field locator}
    Log  ${field text}
    ${found flag}=  Set variable if  '${field text}'=='${TEXT TO SEARCH}'
    ...                              ${True}
    ...                              ${found flag}
    END
    Should be true  ${found flag}
    ...             msg=Movie '${TEXT TO SEARCH}' is not found in the table
    Close Browser

*** Keywords ***
Get field XPath
    [Arguments]  ${row number}
    ${xpath}=    Set variable  //table[@class='table']//tbody/tr[${row_number}]/td[${NUMBER OF COLUMN}]
    [Return]     ${xpath}
在这里,我为表的特定字段使用了一个XPath模板:
//table[@class='table']//tbody/tr[${row\u number}]/td[${number of COLUMN}]
,其中
${row\u number}
是我从for循环中获得的行号


似乎对您的案例很有用。

谢谢您,这很有帮助