@editLinks = $ie.link(:text => "Edit", :class =>"edit" ).links
@editLinks.each do |l| l.click
end
我有上面的代码,它迭代了一组名为“Edit”的链接。在网页上单击编辑时,文本框将变为启用状态,用户可以键入其中。不同的文本框有不同的编辑链接。但是,出于某种原因,代码不是迭代或给我任何错误。它只是完成脚本而不点击任何编辑链接。我省略了javascript onlcick的东西,只显示html。网页上的所有编辑链接也都有不同的ID。
<a id="EditLinkButton" class="edit"><strong>Edit</strong></a>
答案 0 :(得分:2)
在阅读Get Elements By Attributes问题后,我建议您执行以下操作:
@editLinks = $ie.links
@editLinks.each do |link|
if link.attribute_value("class") == "edit" and link.text == "Edit"
link.click
end
end
这可能是一种更好的方法,但它确实有效。
编辑:
在阅读下面的评论之后,也许某些事情会更好
@edit_ids = %w(your edit link ids seperated by whitespace)
@edit_ids.each do |edit_id|
$ie.link(:id => edit_id).click
# whatever else you're doing
end
这样你就可以在需要它们的时候在DOM中查找它们,而不是存储它们,然后随着页面在测试期间的变化,它们的引用就会过时。值得一试。