首页 > 解决方案 > 我可以用 .any 分配在 page_source 中找到的元素位置吗?方法到一个变量,所以我可以稍后在 Ruby 代码中引用它?

问题描述

我扫描page_source

CONSTANTS = [' AA1 ',  ' AA2 ', ' AB3 ', ' AB4 ', " AC5 ", ' AC6 ',' AN11 ',' BN12 ']

if CONSTANTS.any? {|pc| @a = pc if driver.page_source.include?(pc)}

我需要能够访问找到的元素,所以我可以单击它旁边的按钮。实际的元素位置是动态的,每隔几秒就会改变一次,看起来像这样。

css=.ng-scope:nth-child(3) > .ng-scope:nth-child(3).btn

没有 id 或 name。页面源能够验证已找到该项目,但我无能为力。

我在这里有什么遗漏吗?谢谢

标签: cssrubyselenium-webdriver

解决方案


假设CONSTANTS是一个Enumerable,寻找匹配元素的方法不是any?,而是find。来自 Ruby-Docs 的find

返回第一个不为假的块。


推荐阅读