获取相对于导航器对象的特定后代的最佳方法

时间:2017-08-03 18:46:46

标签: selenium geb

以下是我正在使用的HTML示例:

<div //this is the Navigator I have
    <div
    <div class = 'myClass'
        <div
            <sort-table
                <table
                    <thead </thead>
                    <tbody </tbody> //this is the Navigator I want
                </table>
            </sort-table>
        </div>
    </div>
    ... (you get the idea)

我有一个方法应该相对于特定的导航器获取表。有问题的导航器链接到我在上面的HTML中标记的div。我希望它能归还给你。

我很惊讶Navigator没有getAllDecendents方法。

现在我的方法看起来像这样:

Navigator getTable(Navigator config){
        return config.children($(By.xpath("//div[@class='myClass']"))).children().children().children().children($(By.xpath("//tbody")))
    }

它工作正常,但我不喜欢我必须做child()链。我必须想象有一种方法可以根据特定的选择器获取后代,但我在API中找不到类似的内容

我应该补充说,有一个很好的理由我不能只使用xpath来抓住那张桌子。这只是HTML的一小部分。这个结构在页面上重复多次,这就是我使用getTable方法的原因。

1 个答案:

答案 0 :(得分:1)

也许您想使用.find()代替.children()?

$( “div.myClass”)。发现( “TBODY”)