scrollIntoView vs moveToElement
在Selenium WebDriver中,有两种将元素放入可见区域的主要方法:
滚动到视图:
1 | ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element); |
使用
1 2 3 | Actions actions = new Actions(driver); actions.moveToElement(element); actions.perform(); |
这些方法等效吗?应首选哪种方法?
dom方法
Selenium方法
我默认使用
如果你根本不想影响Selenium放置鼠标的位置,但是你想滚动一些东西到视图中(有点奇怪…但可能),那么您应该使用
scrollIntoView 。如果您需要使用
scrollIntoView 提供的控件类型滚动一个元素(如上面提到的对齐选项),那么您必须使用它而不是moveToElement 。有些情况下,尝试通过Selenium的命令来模拟用户行为是不可能的,或者通过发送一系列Selenium命令来模拟用户行为是非常昂贵的。(每个命令都是到网络的往返。在这种情况下,我使用Selenium的
executeScript 。在这种情况下,最好在正在执行的脚本中使用scrollIntoView ,而不是结束脚本,创建一个Action 来执行滚动,然后用另一个executeScript 完成整个操作。