如何使用java在窗口内水平滚动滚动条

Sri*_*nth 5 java selenium

我的问题是水平滚动滚动条在窗口内我使用了这个代码,但它滚动窗口水平条而不是那个窗口内的滚动条.

    WebElement scroll = driver.findElement(By.xpath("//div[@id='gvLocationHorizontalRail']"));
    JavascriptExecutor js = (JavascriptExecutor)driver;
    js.executeScript("window.scrollBy(250,0)", "");
Run Code Online (Sandbox Code Playgroud)

Fer*_*big 10

您正在使用滚动主窗口的javascript,如果要滚动元素,则应首先按id获取元素,然后更改其scrollLeft属性:

JavascriptExecutor js = (JavascriptExecutor)driver; 
js.executeScript(
    "document.getElementById('gvLocationHorizontalRail').scrollLeft += 250", "");
Run Code Online (Sandbox Code Playgroud)

如果您想要更改上下移动的滚动条,则应更改scrollTop属性.


Pan*_*yar 5

In addition to answer by Ferrybig, can you try this:

WebElement scroll = driver.findElement(By.xpath("//div[@id='gvLocationHorizontalRail']"));
JavascriptExecutor js = (JavascriptExecutor)driver; 
js.executeScript(
driver.execute_script("arguments[0].scrollIntoView()", scroll);
Run Code Online (Sandbox Code Playgroud)


小智 5

使用以下内容:

WebElement problematicElement= driver.findElement(By.xpath("//div[@id='blah']"));
(JavascriptExecutor)driver.executeScript("arguments[0].scrollIntoView()", problematicElement);
Run Code Online (Sandbox Code Playgroud)