Ruby 如何使用SeleniumWebDriver在页面上找到仅可见的元素?

Ruby 如何使用SeleniumWebDriver在页面上找到仅可见的元素?,ruby,selenium-webdriver,Ruby,Selenium Webdriver,我在同一个类中得到了一个包含两个隐藏跨距的页面。我需要检查页面上是否显示了其中一个。我试图使用@driver.find_元素(:class,'some class')。显示?,但它返回false,当该元素在DOM上不是第一个与该类可见时。我有办法处理吗 更新 HTML 一些错误 一些错误 一些错误 您可以将CSS类用于非显示元素,而不是使用style=“display:none”: .hidden { display: none; } 现在可以检查元素是否具有此类 更新 如果无法更改

我在同一个类中得到了一个包含两个隐藏跨距的页面。我需要检查页面上是否显示了其中一个。我试图使用
@driver.find_元素(:class,'some class')。显示?
,但它返回
false
,当该元素在DOM上不是第一个与该类可见时。我有办法处理吗

更新

HTML


一些错误
一些错误
一些错误

您可以将CSS类用于非显示元素,而不是使用
style=“display:none”

.hidden { 
   display: none;
}
现在可以检查元素是否具有此类

更新


如果无法更改HTML,可以使用函数
element.isDisplayed()
,如果element具有
显示:无
不透明度:0,则返回false,我在另一个问题中发现了它:

要检查页面上是否显示了任何元素,即使可视的
不是按照您提供的在父节点中的第一个,您可以使用以下解决方案:

  • 使用XPath:


使用相关HTML更新问题,您的代码trialsI无法更改HTML。您可以使用函数
元素。isDisplayed()
,如果元素有
显示:无或不透明度:0”,则返回false,我在另一个问题中发现它:
.hidden { 
   display: none;
}
@driver.find_element(:xpath,"//span[@class='some class']").displayed?