2

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

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

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

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

4

1 回答 1

4

Watir-webdriver 的 Element#double_click 将始终单击元素的中间。如果您需要单击其他位置,则需要使用底层的 selenium-webdrivermove_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方法,第二个参数是从左上角向右移动多远,第三个参数是从左上角向下移动多远。

于 2013-06-12T16:39:25.963 回答