将 Xpath 转换为列表变量并使用 For 循环
Posted
技术标签:
【中文标题】将 Xpath 转换为列表变量并使用 For 循环【英文标题】:Turning an Xpath into a list variable and use For loop 【发布时间】:2021-12-24 11:00:03 【问题描述】:我对机器人框架非常陌生。这个问题是关于使用 Xpath 创建一个列表变量。
我正在尝试在机器人中编写 FOR LOOP,以便打印出现在搜索结果页面上的所有项目。这是我到目前为止所做的:
-
我尝试使用 Xpath 声明一个列表变量:
@product //div[contains(@class,'ProductCard__TitleMaxLines')]
此 Xpath 的重复次数与页面上的项目数相同,例如20,所以我假设这个列表将包含 20 个成员。 --> 是这样的吗?
-
我创建了一个 For 循环:
$index Set variable 1
For $product in @related_product
Exit for loop if $index > 20
Log to console $product
$index Evaluate $index+1
End
为此,我假设在 Xpath 上找到的第一个产品是 index=1,下一个是 index=2,依此类推。
这就是我到目前为止所做的一切。请告知这是否正常工作,或者是否有其他更好和更典型的方法。
【问题讨论】:
在您的具体示例中,您甚至不需要索引,只需使用 FOR 循环捕获的所有项目。但是,是的,这会起作用。 感谢@ClaudioBatista 的回复。我试过了,但没有用。它只打印了 1 行。 【参考方案1】:我认为您的问题是,您在网页中有大约 20 次类似的 xpath。如果我的理解是正确的,你应该使用 Selenium 库中的 Get Webelements 关键字。
@product Get Webelements //div[contains(@class,'ProductCard__TitleMaxLines')]
以上行将创建具有相同 xpath 的 webelements 列表
【讨论】:
是的!这就是我想要的。 GetWebelements 有效,非常感谢 Roby。 @Nucleara 如果满意,请采纳答案。 嗨@SylvesterKruin,我应该在哪里点击接受? @Nucleara 单击投票箭头下方的灰色复选标记。它会变成绿色,这意味着你已经接受了答案。请参阅help center 了解更多信息,特别是what to do when someone answers。 @SylvesterKruin 完成。再次感谢。以上是关于将 Xpath 转换为列表变量并使用 For 循环的主要内容,如果未能解决你的问题,请参考以下文章