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