我正在使用具有在线编辑功能的表格。要使单元格可编辑,请双击它。
虽然我确切地知道如何双击一个单元格,但我需要在其中执行此操作的一些单元格中包含超链接。
这意味着有时当 Watir 尝试双击单元格时,它会意外单击超链接,导航到一个全新的页面。
我如何告诉它单击单元格中的空白区域而不是超链接?
我正在使用具有在线编辑功能的表格。要使单元格可编辑,请双击它。
虽然我确切地知道如何双击一个单元格,但我需要在其中执行此操作的一些单元格中包含超链接。
这意味着有时当 Watir 尝试双击单元格时,它会意外单击超链接,导航到一个全新的页面。
我如何告诉它单击单元格中的空白区域而不是超链接?
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
方法,第二个参数是从左上角向右移动多远,第三个参数是从左上角向下移动多远。