我目前正在使用Selenium和Ruby。我的问题是什么传递给Selenium Web Driver的move_by方法?

#move_by(right_by, down_by, device: nil) ⇒ W3CActionBuilder
driver.action.move_by(100, 100).perform


document这样说:

参数:


right_by(整数)-水平偏移量。负值表示移动
鼠标左移。
down_by(整数)—垂直偏移量。负值表示移动
鼠标向上。
device(Symbol || String)— PointerInput设备的可选名称
移动


因此,我使用Chrom Dev工具找到了元素的DOMRect,并在控制台中运行了以下命令:

$0.getBoundingClientRect()


返回以下值:

bottom: 410
height: 14
left: 1801.65625
right: 1817.65625
top: 396
width: 16
x: 1801.65625
y: 396


那么,问题是从上面的数字中我的right_by和down_by参数是什么?

最佳答案

您可以使用javascript滚动到所需位置。
Javascript:

window.scrollTo(100,100);


在ruby中调用Javascript:

driver.execute_script("window.scrollTo(1801.65625,396);")


或者,如果您尝试滚动到某个元素,则可以使用scroll.to,以防万一。

driver.element().scroll.to :bottom

10-08 09:12