动态环境中的水豚模糊

时间:2012-12-02 18:26:55

标签: javascript html ruby capybara

这是我迄今为止能够缓解的一个问题的常见问题。

鉴于动态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吗?

2 个答案:

答案 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.