这是我迄今为止能够缓解的一个问题的常见问题。
鉴于动态html / php很多依赖,并且不可更改。
我的网页来源如此
<div id="unique">
<div id="ambiguous">
<a href="EditMS(unique record num)">Edit</a> <!--Javascript-->
</div>
<div id="ambiguous">
<a href="EditApple(unique record num)">Edit</a> <!--Javascript-->
</div>
</div>
我过去曾遇到过含糊不清的问题,并且能够通过执行底层的javascript来缓解这些问题,但感觉我现在因为动态记录数字而无法解决。
问题一:我可以使用xpath或其他一些方法来访问正确的编辑链接吗? 问题二:我可以以某种方式获取动态记录号,然后执行javascript吗?
答案 0 :(得分:1)
使用css有几种方法可以做到这一点。您可以获取所有匹配的ID,或者如果链接href总是这样,您可以使用css属性匹配。例如:
find('#unique').all('#ambiguous').each do |ambiguous|
# conditions in here
end
或者您可以使用^=
进行匹配,*=
进行匹配,$=
进行匹配结束
find('a[href^="Edit"]')
或find('a[href*="Apple"]')
希望有所帮助。我看到一个正则表达式可以在不久的将来获得价值。像:
"EditApple293845093405983049".match(/\d+/)[0]
# => 293845093405983049
答案 1 :(得分:0)
回答问题1:
find(:xpath, "//unique/div[@id=ambiguous][0]")
is what you're looking for.