selenium 获取robot框架中“表列应包含”之后的Web表的行

hgb9j2n6  于 2022-12-04  发布在  其他
关注(0)|答案(2)|浏览(120)

我有下一个关于使用Selenium通过Robot Framework处理Web表的问题:
网页有一个3列的表格,但行是基于一年中的月份而变化的,我已经使用“表格列应包含”来确认是否存在包含月份文本的行(即“monthA”),但现在我需要基于该行处理相邻单元格
| A列|B栏|C列|
| - -|- -|- -|
| 月份A|订单A|链路A|
| 月份B|订单B|链路B|
到目前为止,我尝试使用

${rows}=    Get Element Count    //*[@id="root"]/div[2]/div/div[2]/div[9]/div/table/tbody/tr

返回行数,但是当我尝试在FOR循环中使用它来获取名称和对应的行时,索引不起作用,看起来好像它不能识别索引的值0,我在循环中尝试执行的操作是

${value}    Get Text    (//*[@id="root"]/div[2]/div/div[2]/div[9]/div/table/tbody/tr)[${i}]

目前我还停留在试图找出如何使索引工作的部分

wyyhbhjk

wyyhbhjk1#

尝试使用范围从1开始的FOR循环,以便索引指向行1

FOR    ${i}    IN RANGE    1    ${rows}+1
  ${value} =     Get Text    (//*@id="root"]/div[2]/div/div[2]/div[9]/div/table/tbody/tr)[${i}]
  Log   Month name is ${value}
  ${Order_name}= Get Text    //*@id="root"]/div[2]/div/div[2]/div[9]/div/table/tbody/tr[${i}]/td[2]
  Log   Order name is ${Order_name}
  < similarly you can do it for adjacent column>

 END

要获取

oxcyiej7

oxcyiej72#

我结束了对Rakesh的建议,然后我不得不使它添加一个与表兼容的值,因为它将头部作为行计数

${rowcount}    Evaluate    ${i} + 3

然后使用新的FOR计算每个单元格:

${value}    Run Keyword And Return Status    Table Cell Should Contain    //*[@id="root"]/div[2]/div/div[2]/div[9]/div/table    ${rowcount}    1    ${month_string}
    IF    ${value} == ${True}
        ${declaracion_status}    Run Keyword And Return Status    Table Cell Should Contain    //*[@id="root"]/div[2]/div/div[2]/div[9]/div/table    ${rowcount}    2    *Expected value*

现在,我有另一个问题,这是拯救第三个单元格,其中包含一个按钮,所以技术上应该与'点击按钮'关键字工作,但我需要生成正确的xpath到它。在结构应该是这样的:

(//*[@id="root"]/div[2]/div/div[2]/div[9]/div/table/tbody/tr)([${rowvalue_xpath}])(/td[3]/button)

但文字表达式不能直接由提到的关键字使用,因为它不是文字xpath

相关问题