#excel #vba #selenium
#excel #vba #селен
Вопрос:
Я пытаюсь сосредоточиться на элементе, чтобы сделать этот элемент в центре экрана или сверху, чтобы быть выше середины. Это то, что я сделал
.FindElementById("toBePaid[" amp; r - 1 amp; "]").ExecuteScript "this.scrollIntoView(true); window.scrollBy(0, -(window.innerHeight - this.clientHeight)-150);"
Но я не мог видеть элемент, поскольку он находится в верхней части экрана веб-сайта.
Я тоже пробовал
.FindElementById("toBePaid[" amp; r - 1 amp; "]").ScrollIntoView True
Но та же проблема все еще существует.
Ответ №1:
С помощью @QHarr я мог бы его разделить
Function ScrollIntoViewCenter(element As WebElement)
Const JS_SCROLL_CENTER = _
"this.scrollIntoView(true);" amp; _
"var y = (window.innerHeight - this.offsetHeight) / 2;" amp; _
"if (y < 1) return;" amp; _
"for (var e=this; e; e=e.parentElement) {" amp; _
" if (e.scrollTop == 0) continue;" amp; _
" var yy = Math.min(e.scrollTop, y);" amp; _
" e.scrollTop -= yy;" amp; _
" if ((y -= yy) < 1) return;" amp; _
"}" amp; _
"window.scrollBy(0, -y);"
element.ExecuteScript JS_SCROLL_CENTER
End Function