使用Watir选择嵌套表中的图像

时间:2015-03-02 07:25:09

标签: ruby watir

我试图使用Watir来抓取一个包含AJAX生成的表的页面。随着表的每个级别的扩展,将插入其他嵌套表,并且展开链接将在一个级别中移动。级别数量并不总是相同。最终结果是这样的,一次异步加载一层:

<table>
    Data Type 1
    <table>
        <table>
            <table>
                <a href="javascript:ajaxCall();"><img src="expand.gif" /></a>
            </table>
        </table>
    </table>
</table>
<table>
    Data Type 2
    <table>
        <table>
            <table>
                <a href="javascript:ajaxCall(1);"><img src="expand.gif" /></a>
                <a href="javascript:ajaxCall(2);"><img src="expand.gif" /></a>
            </table>
        </table>
    </table>
</table>

我想只与包含&#34;数据类型1的表进行交互。&#34;表ID是随机生成的(这是一个烦人的ASP.net应用程序),因此唯一要选择的是&#34;数据类型1.&#34;

因此,我有:

while browser.table(:text => /Type 1/).image(:src => "expand.gif").present?
    links = browser.table(:text => /Type 1/).images(:src => "expand.gif")
    links.each do |li|
        li.click
    end
end

这可以很好地扩展第一个嵌套表(expand.gif直接位于包含选择器文本的table元素内。但是,下一层表格不会扩展 - 显然,我的选择器不会进入子表。

如果我完全忽略了表选择器,代码将很乐意扩展页面上的每个嵌套表,直到它用完级别,但我只想要&#34;数据类型1.&#34;

有任何建议如何实现这一目标?提前谢谢。

0 个答案:

没有答案