【问题标题】:Watir webdriver; counting elements with changing class namesWatir 网络驱动程序;计算类名变化的元素
【发布时间】:2016-09-26 07:35:47
【问题描述】:

我正在使用 Rspec 和 Watir-webdriver 并希望获得所有已点击元素的计数。

我在做什么:

我执行搜索并返回结果列表;然后我运行一个循环来选择其中的 5 个。这些元素的类名从asset-card selectable 到现在的asset-card selectable selected

我尝试通过这样做来获得正确的计数:

count = @browser.elements(:class, 'selected').size

但这仍然给我所有结果,而不是现在有selected作为类名的一部分。

有什么想法可以做到这一点吗?
这是 html 的样子:

<div class="search results">
    <div class="asset-card selectable selected"></div>
    <div class="asset-card selectable selected"></div>
    <div class="asset-card selectable"></div>
    <div class="asset-card selectable"></div>
    <div class="asset-card selectable"></div>
</div>

在这个 html 示例中,前两个元素已被选中

【问题讨论】:

  • 你是说@browser.elements(:class, 'selected')返回的是asset-card selectable类的元素吗?如果您可以提供有问题的 HTML,这将有助于重现您的问题。
  • @orde,我已经更新了我的原始帖子以显示 HTML 正在做什么
  • @kmancusi,你是说@browser.elements(:class, 'selected').size 不会为示例 HTML 返回“2”吗?
  • @JustinKo:是的,这就是我最初遇到的问题——巧合的是我刚刚解决了这个问题-_-

标签: ruby rspec count watir-webdriver


【解决方案1】:

我觉得自己很笨;我找到了一个解决方案,解决了为什么我没有得到正确的计数返回:这是因为我等待的时间不够长

在我放置sleep 1 持续时间后,它返回的计数与我点击的内容准确无误。我对此的想法并不完全是技术性的,但它表现得好像点击操作和类名更改正在执行操作,然后才能确定正确的计数。
我将寻求一个更优雅的wait 解决方案,因为我希望尽可能避免使用sleep 命令

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-27
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2015-09-27
    • 1970-01-01
    • 2022-12-04
    相关资源
    最近更新 更多