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: