使用Watir单击表元素

时间:2012-09-07 08:07:07

标签: html button onclick html-table watir

JavaScript按钮我想点击它,虽然它在表格中:

<table>
  <tr>
    <td height="20" align="center" nowrap style="color:#0000FF; cursor:pointer; border: 1 solid #426996; background-color: #FAFAFF;" 
      onClick="Initial();"
      onMouseOver="javascript:{style.backgroundColor='#426996'; style.color='#FFFFFF'}" 
      onMouseOut="javascript:{style.backgroundColor='#FFFFFF'; style.color='#0000FF'}">
      <font face="Verdana, Arial, Helvetica, sans-serif" size="1"><b>&nbsp;New Incident&nbsp;</b></font>
    </td>
    <td width="4"></td>

此处还有四个“按钮”,但我无法点击其中任何一个。似乎唯一可以将按钮与另一个按钮分开的是onClick javascript事件。我尝试过使用xpath,但我似乎无法找到该元素。我试过这个......

ie.button(:xpath => "//td[@onClick='Initial();']".exists?

ie.link(:xpath => "//td[@onClick='Initial();']".exists?

他们返回假。

我认为一旦发现这个元素,我就可以使用.fire_event('onClick').click它应该可以工作,我似乎无法找到它。

2 个答案:

答案 0 :(得分:3)

使用#td方法改为使用正则表达式:

ie.td(:html => %r{Initial()}).click

如果可以的话,可以为你的td分配一些html ID或class属性,以便更容易定位。有些东西:

<td id="mytd" ... onClick="Initial();">...</td>
ie.td(:id => "mytd").click

或者使用带有正则表达式的文本:

ie.td(:text => /New Incident/).click

答案 1 :(得分:1)

您尝试单击的元素不是按钮,而是表格中的单元格。更多信息:http://www.w3.org/wiki/HTML/Elements/td

这样的事情应该有效(未经测试):

browser.element(:css => "td[onClick=Initial();]").click

更多信息:http://www.w3.org/TR/CSS2/selector.html#matching-attrs