【问题标题】:Watir: Finding the Parent div containing a specific childWatir:查找包含特定子项的父 div
【发布时间】:2014-04-03 01:01:59
【问题描述】:

我有以下 HTML 结构:

<div class="items">
  ...some complex structure with many sub divs ...
                     <div id="specificchild"></div>
</div>
<div class="items>
  ... 
</div>

我需要使用包含“特定子”-DIV 的类项进入 DIV。 问题是特定子级与父级div“项目”没有直接关系,而且两者之间的结构也不总是相同的。所以

browser.div(:id => "specificchild").parent

不会工作。

是否有可能选择 div 而无需遍历所有 div 并询问它是否包含“特定子项”?

【问题讨论】:

    标签: ruby webdriver watir


    【解决方案1】:

    解决方案 1 - Xpath

    在这种情况下,我认为最简单的解决方案是使用 xpath:

    browser.div(:xpath, '//div[@class="items"][.//div[@id="specificchild"]]')
    

    解决方案 2 - 迭代到父级

    或者,您可以像往常一样找到特定的子元素。然后迭代父项,直到找到具有“items”类的项:

    item = browser.div(:id => 'specificchild')
    item = item.parent until item.class_name == 'items'
    

    解决方案 3 - 使用查找

    另一种选择是获取具有类项的 div 集合,然后找到具有特定子项的 div。它只会遍历 div,直到找到所需的。

    browser.divs(:class => 'items').find{ |item| item.div(:id => 'specificchild').exists? }
    

    【讨论】:

    • 我想避免使用 XPath,因为 Watir 被设计为在没有 XPath 表达式的情况下工作,但我想我会坚持下去。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-18
    • 2017-04-21
    • 1970-01-01
    • 2019-02-16
    • 2011-11-29
    相关资源
    最近更新 更多