我对Ruby,Selenium和UI自动化非常陌生,并且在下拉菜单中快速询问如何获取可见项目数。
示例:我有一个10个货币值(美元,欧元,日本等)的下拉菜单。它们被编码为:
<div class="list_item">Currency Symbol</div>
下拉菜单是可搜索的,如果我输入“ USD ”,那么唯一可见的项目就是该特定货币值。该类的所有其他div都获得style="display: none;"
属性。如何验证 USD 确实是菜单中的唯一项目?这里可以看到这种情况的一个例子:https://www.oanda.com/currency/converter/
从概念上讲,我正在考虑这样做:
div
遍历每个class=List_item
标记,如果找到具有显示的标记,请对其进行计数。然后验证它是否等于'1'。我尝试使用find_elements
但似乎无法在数组中的每个元素中找到属性(是因为它们不是webdriver对象吗?)。
如果还有另一种更好的方法,那么了解和学习更多内容真的很好。感谢任何回复。
答案 0 :(得分:2)
因此,在此特定示例中,您可以
@driver.find_elements(:xpath, "//div[@class='currency_dropdown']/div[@id='scroll-innerBox-1']/div[not(@style='display: none;')]").size
当在搜索字段中输入美元时,这应该返回1。
编辑:我建议您为首选的浏览器(FF或Chrome)获取ChroPath。在测试xpath时,它有很大帮助。