Ruby 使用Watir在嵌套表中选择图像
我试图使用Watir来创建一个包含AJAX生成的表的页面。展开表的每个级别时,将插入其他嵌套表,展开链接将在一个级别中移动。级别的数量并不总是相同的。最终结果如下,一次异步加载一层:Ruby 使用Watir在嵌套表中选择图像,ruby,watir,Ruby,Watir,我试图使用Watir来创建一个包含AJAX生成的表的页面。展开表的每个级别时,将插入其他嵌套表,展开链接将在一个级别中移动。级别的数量并不总是相同的。最终结果如下,一次异步加载一层: <table> Data Type 1 <table> <table> <table> <a href="javascript:ajaxCall();"><img
<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>
这可以很好地扩展第一个嵌套表(将expand.gif
直接放在包含选择器文本的table
元素中)。但是,下一层表不会扩展——显然,我的选择器不会进入子表
如果我完全不使用表选择器,代码将很高兴地扩展页面上的每个嵌套表,直到它超出级别,但我只需要“数据类型1”
有什么建议吗?提前谢谢。您使用的是什么版本的watir?如果您在其中添加一些调试代码,例如
put“链接数为:#{links.size}”
这可能有助于了解发生了什么。另一件事是,如果这些扩展链接是动态创建的,您可能需要在while循环结束之前稍作休息,比如半秒钟左右,以便给客户端代码一些时间来呈现链接或使其可见。一旦扩展,HTML会是什么样子类型1表-即嵌套表的外观如何?
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