Javascript 使用某些参数滚动到视图中

Javascript 使用某些参数滚动到视图中,javascript,c#,selenium,Javascript,C#,Selenium,我有一个进入视图的卷轴,它已经可以工作了,但是我想让它更智能 这是到目前为止我的代码 ((IJavaScriptExecutor)驱动程序).ExecuteScript(“参数[0].ScrollingToView(true);”,元素) 它被连接到我的OnClicking事件监听器中,所以每当它点击一个元素时,它首先将其滚动到视图中 这是很好的,它做了我想做的事情,但是,在运行我的测试时,即使页面在屏幕中间,我的页面也会上下滚动。 因此,我的问题是,如何在此设置一个参数,即如果元素在可视屏幕上

我有一个进入视图的卷轴,它已经可以工作了,但是我想让它更智能

这是到目前为止我的代码

((IJavaScriptExecutor)驱动程序).ExecuteScript(“参数[0].ScrollingToView(true);”,元素)

它被连接到我的OnClicking事件监听器中,所以每当它点击一个元素时,它首先将其滚动到视图中

这是很好的,它做了我想做的事情,但是,在运行我的测试时,即使页面在屏幕中间,我的页面也会上下滚动。


因此,我的问题是,如何在此设置一个参数,即如果元素在可视屏幕上低于3/4,则滚动?

您可以使用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坐标。 并使用以下命令:

或者。。。看看这个:
我想。你可以试试

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

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

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

表示当屏幕上未显示元素时是否要滚动??Right@SaurabhGaur我只想在元素低于屏幕75%时滚动。我如何使用selenium?您是用Java编码的吗?Php/Behat?python您可以将其作为javascript执行。对于java: