我目前正在使用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