2013-02-13 81 views
0

我想单击表中的链接。表格中的链接是搜索结果,因此会根据您搜索的内容而变化。我想点击表格中的第一个链接。单击表中返回的搜索结果链接

HTML是:

<div data-bind="visible: HasSearchResults"> 
    <table class="table table-bordered table-striped"> 
     <tbody data-bind="template: { name: 'productSelectTemplate', foreach: SearchResults }"> 
      <tr> 
       <td> 
       <a href="#" class="autoResult" data-bind="text: id + ' (' + name + ')', click: function() { this.SelectProduct(); }">1724612110 (Nike item1)</a> 
       </td> 
      </tr> 

      <tr> 
       <td> 
       <a href="#" class="autoResult" data-bind="text: id + ' (' + name + ')', click: function() { this.SelectProduct(); }">5110000601 (Nike item2)</a> 
       </td>     
      </tr> 

      <tr> 
       <td> 
       <a href="#" class="autoResult" data-bind="text: id + ' (' + name + ')', click: function() { this.SelectProduct(); }">5110000602 (Nike item3)</a> 
       </td> 
      </tr> 


     </tbody> 
    </table> 
</div> 

任何人有任何想法如何做到这一点?

谢谢!

回答

1

您可以通过它们的索引(相对于正在搜索的容器)获取元素。请注意,这是一个从零开始的索引,所以第一个环节是指数0

下会点击该表中的第一个链接:

search_results_table = browser.table(:class => 'table table-bordered table-striped') 
search_results_table.link(:index => 0).click 

注意,:index => 0包括在定位器默认情况下,所以你可以实际省略它:

search_results_table.link.click 
+0

嗨贾斯汀,感谢您的回复。我尝试了你提供的代码,但我得到一个错误:无法定位元素,使用{:index => 0,:tag_name =>“a”}(Watir :: Exception :: UnknownObjectException)我也尝试添加一个在搜索后进入睡眠状态,以确保结果存在以实际点击 – user1523236 2013-02-13 22:04:49

+0

是否有多个具有相同类的表?如果你执行'puts browser.tables(:class =>'table table-bordered table-striped')'length',你会得到什么? – 2013-02-13 22:18:36

+0

是的,认为这可能是问题。当我尝试了长度码时,我返回了6个。我能做些什么来确定正确的表格? – user1523236 2013-02-13 22:53:04