如何使用Watir页面对象方法单击树视图中的项



我有下面的HTML,它代表一个树视图,有两个元素TREENODE1,TREENODE2:

<div id="foldersPodContent" class="body">
    <ul id="foldersTree" class="list collapsible folders hideRoot" data-component-type="tree" data-tab-index="3" style="position: relative;">
        <li id="node1" class="folders node open selected firefinder-match" tabindex="-1">
        <p class="wrap button draggable">
            <b id="handler1" class="icon"></b>
        </p>
        <ul id="node1sub" class="list collapsible">
            <li id="node2" class="folders node closed" tabindex="-1">
                <p id="anonymous_element_1" class="wrap button draggable">
                <b id="handler2" class="icon"></b>
                TREENODE1
                </p>
            </li>
            <li id="node9" class="folders node closed " tabindex="-1">
                <p class="wrap button draggable">
                <b id="handler9" class="icon"></b>
                TREENODE2                    </p>
            </li>
        </ul>
    </li>
    </ul>
</div>

这个id被命名为handler2, handler9代表树中的加号。我的目标是能够使用Watir的页面对象gem来选择这些加号之一,以使树扩展。下面的Ruby代码提供了对两个元素TREENODE1、TREENODE2文本的访问:unordered_list(:folders, :id => 'foldersTree')

返回一个字符串TREENODE1nTREENODE2,可以很容易地分割。不确定如何获得"handler"项,以便单击它们展开树节点并显示下属。任何想法吗?

b元素引起了一些问题,因为b元素或通用元素目前有嵌套的元素方法。作为一种解决方法,我认为您必须深入到底层的Watir代码中。

假设您已经在页面对象中定义了文件夹树:

unordered_list(:folders, :id => 'foldersTree')

然后你可以得到一个特定的文件夹通过它的文本和它的展开图标(即b元素)与底层的Watir元素:

folder = page.folders_element.list_item_element(:text => 'TREENODE1')
folder.element.b.click

相关内容

  • 没有找到相关文章

最新更新