使用特定参数滚动进入视图
本文关键字:视图 滚动 参数 | 更新日期: 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);