【问题标题】:Way to click on visible elements of all the enabled elements单击所有启用元素的可见元素的方法
【发布时间】:2014-03-28 12:41:38
【问题描述】:

有没有办法使用Fluentlenium(类似于selenium)只点击所有返回元素的可见? 例如我有

@FindBy(css = "div[class^='event-body']>button")
    public FluentWebElement hostMeeting;

这将返回可能的按钮。其中只有一个是可见的。 我想点击它。

【问题讨论】:

  • 那您肯定需要使用更好的定位器来定位可见元素吗?
  • 在 selenium 我们有方法 element.isDisplayed() 可以在你的情况下使用。
  • @Arran AFAIK,没有更好的定位器,因为唯一独特的是另一个按钮,它是该元素的父元素的子元素。
  • @lost 这不行,我不知道为什么
  • 也许共享 HTML,这样我们就可以看到这两个按钮实际上是如何相互关联的。

标签: selenium selenium-webdriver webdriver fluentlenium


【解决方案1】:

这里的目标是找出它是如何隐藏元素的。通常,这将是内联样式属性。它会是这样的:

<div class="event-body something">
  <button style="display: none;" />
  ...
</div>

您可以通过编辑 CSS 选择器来匹配它:

div.event-body > button:not([style*='display:none'])

【讨论】:

  • 所以如果类host-meeting 导致它,(您可以通过控制台删除它来测试它。)然后将我的选择器更改为class~='host-meeting'
  • 我要点击的元素也属于同一类。它们的区别仅在于 rel(每次都会改变)和可见性
猜你喜欢
  • 2016-10-15
  • 2018-04-10
  • 1970-01-01
  • 1970-01-01
  • 2017-10-15
  • 1970-01-01
  • 1970-01-01
  • 2012-12-22
  • 1970-01-01
相关资源
最近更新 更多