1

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

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

4

2 回答 2

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
于 2012-12-02T19:00:12.280 回答
0

要回答问题 1:

find(:xpath, "//unique/div[@id=ambiguous][0]") is what you're looking for.

于 2012-12-02T18:44:38.357 回答