excel - Robot框架中表格和excel的列表长度不同
问题描述
我正在比较和匹配两个列表;
第一个列表/数据从 excel 中收集(${EXCEL DATA} 值添加到 ${LIST EXCEL}),第二个数据/列表使用 xpath 从表中收集,值添加到 ${TABLE LIST}。在这个例子中,我只使用了一行作为列表。实际上,我想使用 excel 中的 12 个值,因此也想从表中获取 12 个值。但是这 12 个值在表中的顺序不同。简化代码:
${EXCEL LIST}= Create List
Open Excel Document ${EXCEL DATA} doc_id=doc1
FOR ${I} IN RANGE 2 3
${ROWS FROM EXCEL} = Read Excel Row ${I} sheet_name=Sheet1
Append to list ${EXCEL LIST} ${ROWS FROM EXCEL}
END
Log to console ${EXCEL LIST}
${TABLE LIST}= Create List
FOR ${J} IN RANGE 2 3
${FIRST VALUE} = Get Text //table[@class="table"]/tbody/tr/td[1]
Append To List ${TABLE LIST} ${FIRST VALUE}
${SECOND VALUE} = Get Text //table[@class="table"]/tbody/tr/td[3]
Append To List ${TABLE LIST} ${SECOND VALUE}
${THIRD VALUE} = Get Text //table[@class="table"]/tbody/tr/td[5]
Append To List ${TABLE LIST} ${THIRD VALUE}
END
#etc
Log to console ${TABLE LIST}
Lists should be equal ${EXCEL LIST} ${TABLE LIST}
它表明长度不同:1!= 12
${EXCEL LIST} 长度为 1,${TABLE LIST} 长度为 12,而我希望列表为 1=1。
是否有一种简化的方法可以将表中的列表设为长度 1?“获取文本”是什么原因造成的?尝试了不同的方法,但无法克服这一点。提前致谢
解决方案
Read Excel Row
正在将一个列表附加到您创建的列表中,因此看起来您正在返回 1,因为列表是嵌套的。另一方面,每个表数据的单值结果只是直接附加到您创建的列表中。
您可以尝试将表格结果附加到循环内的列表中,然后将该列表附加到您的${TABLE LIST}
${EXCEL LIST} Create List
Open Excel Document ${EXCEL DATA} doc_id=doc1
FOR ${I} IN RANGE 2 3
${ROWS FROM EXCEL} Read Excel Row ${I} sheet_name=Sheet1
Append to list ${EXCEL LIST} ${ROWS FROM EXCEL}
END
${TABLE LIST} Create List
FOR ${J} IN RANGE 2 3
${CURRENT_TABLE} Create List
${FIRST VALUE} Get Text //table[@class="table"]/tbody/tr/td[1]
Append To List ${CURRENT_TABLE} ${FIRST VALUE}
${SECOND VALUE} Get Text //table[@class="table"]/tbody/tr/td[3]
Append To List ${CURRENT_TABLE} ${SECOND VALUE}
${THIRD VALUE} Get Text //table[@class="table"]/tbody/tr/td[5]
Append To List ${CURRENT_TABLE} ${THIRD VALUE}
Append To List ${TABLE LIST} ${CURRENT_TABLE}
END
#etc
Log To Console ${EMPTY}
Log To console Table List: ${TABLE LIST}
Log To console Excel List: ${EXCEL LIST}
Lists Should Be Equal ${EXCEL LIST} ${TABLE LIST}
推荐阅读
- python - 从另一个参数获取参数
- c++ - 无缘无故地抛出一个实例
- r - 如何在 r 中调用后将 xlabel 和 ylabel 添加到基本图?
- react-native - 如何运行特定的 fastlane 任务,例如“pilot”
- amazon-s3 - 通过 Lambda 和 API Gateway 从 AWS S3 下载图像——使用 fetch 类
- javascript - Storybook React 及其示例组件不起作用
- python - 在 python 中,如果 y==0 则做一些事情,如果 y!=0 则做其他事情
- c - 为什么到达 MEX 文件的最后一行后返回 Matlab 需要这么长时间?
- symfony - symfony 在规范化实体时找不到支持规范化器
- c - 为什么下面的代码会在字符串末尾执行意外的字母?