单击使用watir-webdriver动态生成的元素

时间:2012-04-09 16:29:33

标签: ruby-on-rails watir-webdriver

我有以下HTML代码:

<table class="report" width="100%">
<thead>
</thead>
<tbody>
<tr class="alt">
<td>
<a onclick="window.open(this.href);return false;" href="/search/searches/1563/reports/946">56175-746-45619568-noor.fli.zip</a>
</td>
<td class="_"> Report </td>
<td class="_"> 09 Apr 2012</td>
<td class="_"> Noor</td>
<td class="_"> 2.8 MB</td>
<td class="_">Ready</td>
</tr>

我想点击href="/search/searches/1563/reports/946">56175-746-45619568-noor.fli.zip,但我不想使用XPATH。我尝试了很多但是失败了,有没有办法点击这个href而不使用XPATH。非常感谢。

2 个答案:

答案 0 :(得分:1)

您可以使用href

br.link(:href => '/search/searches/1563/reports/946').click

或文字

br.link(:text => '56175-746-45619568-noor.fli.zip').click

或者您可以使用正则表达式匹配的变体

br.link(:href => /reports/).click

br.link(:text => /noor.fli.zip/).click

答案 1 :(得分:1)

它是该表中唯一的链接吗?或者始终是该表中的第一个链接?

browser.table(:class => 'report').a.click

如果有多个表,那么你必须弄清楚如何找到你想要的那个。也许是通过表格内的文字。如果在您的示例中,Noor文本对于该表是唯一的,那么您可以尝试这样的

browser.table(:class => 'report', :text => /Noor/).a.click

或者如果你知道上面的结构会在链接和报告的信息在一个表行上的地方持续存在)

browser.row(:text => /Noor/).a.click

您必须尝试确定哪个是最强大或最脆弱的