使用特定参数滚动进入视图

本文关键字:视图 滚动 参数 | 更新日期: 2023-09-27 18:11:53

我有一个滚动到视图已经工作,但我想使它更聪明。

这是我到目前为止的代码

((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", element);

,这是钩到我的onclicks事件监听器-所以每当它去点击一个元素,首先它滚动到视图。

这很好,它做了我想要的,但是当我运行我的测试时,我的页面上下滚动,即使元素在屏幕中间。

所以我的问题是,我如何设置一个参数来说明,如果元素在可视屏幕上低于3/4,那么滚动?

使用特定参数滚动进入视图

我想。你可以试试。

var element = driver.FindElement(By.Xpath("//*/blabla"));
var js = driver as IJavaScriptExecutor;
js.ExecuteScript("window.scrollTo(" + element.Location.X + ","+(element.Location.Y - 100) + ");");

你可以使用javascript来获取X/Y坐标:

var cumulativeOffset = function(element) {
    var top = 0, left = 0;
    do {
        top += element.offsetTop  || 0;
        left += element.offsetLeft || 0;
        element = element.offsetParent;
    } while(element);
    return {
        top: top,
        left: left
    };
};

在本例中,您想要Y坐标。使用这个:http://www.w3schools.com/jsref/met_win_scrollto.asp

还是……看看这个:Javascript scrollIntoView()中间对齐?

我知道这是一个旧的帖子,但是如果人们在寻找答案,这里是

((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView({block: '"center'"});", webElement);