【问题标题】:Using watir-webdriver, how can I click a table row?使用 watir-webdriver,如何单击表格行?
【发布时间】:2011-04-19 19:13:13
【问题描述】:

我正在尝试将我的旧 watir 脚本转换为使用 watir-webdriver,因为它(最终)将支持 IE9 和 Firefox 4。$browser.table_row(:id => "account_1").click 是我用来单击屏幕上表格第一行的内容watir/firewatir,但是在 watir-webdriver 中修改了这个 API。现在,代码是这样的:$browser.table(:class => "sortable")[0].click 应该抓取表格的第一行,然后单击它。它似乎是成功的,因为它继续执行代码,但实际上并没有单击该行。

有人可以解释在这种情况下正确的语法是什么吗?

这是我要点击的区域周围的源代码:

<table class="sortable">
<thead>
    <tr id="">
        <th> </th>
        <th class="sort" > Name </th>
        <th class="sort" > Number </th>
    </tr>
</thead>
<tbody>
    <tr id="account_1" onclick=";$('timer').show();; new Ajax.Request('create_new_account', {asynchronous:false, evalScripts:true, onComplete:function(request){;$('timer').hide();initializeCustomEffects();}})">
        <td></td>
        <td class="sortTd">Test Account</td>
        <td class="sortTd">1</td>
    </tr>
</tbody>

【问题讨论】:

  • 页面 HTML 样本可能有助于了解事物对哪些事件做出反应、如何识别其中的行或元素等。

标签: internet-explorer-9 watir firefox4 watir-webdriver


【解决方案1】:

您的代码正在查找表的第一行,该行位于 &lt;thead&gt; 内,并且没有 onclick 处理程序。试试这个:

browser.tr(:id => "account_1").click

a script 演示了该行为,here's 是修改后的表 API 的概述。

【讨论】:

  • 该代码无法逐字运行,但我将其更改为 browser.tr(:id =&gt; "account_1").fire_event("onclick") 并得到了预期的结果。谢谢!
【解决方案2】:

Row 不是通常会响应点击的 HTTP 对象。行内是否有您想要单击的链接之类的东西,或者行本身是否使用事件处理设置来响应特定事件,例如“onclick”或“onmousedown”?

如果是前者,请尝试实际单击行内的对象。如果是后者,请尝试使用 .fire_event 方法和不同的事件。

例如:

browser.table(:class => "sortable")[0].fire_event("onmousedown") 

或许

browser.table(:class => "sortable").row(:index, 0).fire_event("onmousedown")

(附录)啊,现在我们有了 HTML,我们可以看到 onclick 处理程序在哪里,正如 Jarib 指出的那样,您点击了标题行(从技术上讲,它是表格的第一行)点击这个东西你想要,你需要一些类似的东西

browser.row(:id, "account_1").click
browser.row(:text, /Test Account/).click
browser.table(:class => "sortable").row(:index, 1).fire_event("onclick")

(除非您的意图是对表格进行排序,在这种情况下,我怀疑您需要单击第一(标题)行中的 CELL 才能对该列上的表格进行排序。

browser.cell(:text, ' Name ').click

【讨论】:

  • 我尝试了这两种方法,使用 onclick 事件,因为那是源中显示的内容,但无济于事。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多