我已经看到了滚动视图,但我正在考虑让它变得更聪明。
这是我目前的代码
((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", element);
挂钩到我的OnClicking事件监听器 - 所以无论何时单击一个元素,首先它将其滚动到视图中。
这很棒,它可以满足我的需求,但是在运行我的测试时,即使元素位于屏幕中间,我的页面也会上下滚动。
所以我的问题是,如何在此设置参数,如果元素在可见屏幕上低于3/4 然后滚动?
答案 0 :(得分:1)
我想。你可以尝试一下。
var element = driver.FindElement(By.Xpath("//*/blabla"));
var js = driver as IJavaScriptExecutor;
js.ExecuteScript("window.scrollTo(" + element.Location.X + ","+(element.Location.Y - 100) + ");");
答案 1 :(得分:0)
您可以使用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() middle alignment?
答案 2 :(得分:0)
我知道这是旧帖子,但是如果有人在寻找答案,那就是
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView({block: \"center\"});", webElement);