如何告诉Watir在表格单元格中双击哪个?

时间:2013-06-12 15:15:48

标签: ruby watir watir-webdriver

我正在使用具有内联编辑功能的表格。要使单元格可编辑,请双击它。

虽然我确切知道如何双击一个单元格,但我需要执行此操作的一些单元格中包含超链接。

这意味着有时当Watir尝试双击单元格时,它会意外地点击超链接,导航到一个全新的页面。

如何告诉它单击单元格中的空白区域而不是超链接?

1 个答案:

答案 0 :(得分:4)

Watir-webdriver的Element#double_click将始终单击元素的中间部分。如果您需要单击其他位置,则需要使用基础selenium-webdriver move_to操作构建器代码。

鉴于html:

<html>
    <body>
        <table>
            <tr>
                <td onclick="javascript:document.title = 'New title';">
                    <a href="http://www.google.ca">hi</a>
                </td>
            </tr>
        </table>
    </body>
</html>

使用双击单元格,单击链接(因为位于单元格的中间):

el = browser.td
el.double_click
browser.title
#=> "Google"

但是,我们可以使用底层的selenium-webdriver代码将鼠标移动到不是中间的单元格中的某个位置(即链接所在的位置)。以下操作将鼠标移动到单元格的左上角:

el = browser.td
el.driver.action.move_to(el.wd, 0, 0).double_click.perform
browser.title
#=> "New title"

请注意,对于move_to method,第二个参数是从左上角向右移动的距离,第三个参数是从左上角向下移动的距离。