Usecase:执行水平滚动,直到找到元素
预reqs: Selenium - Java 3.141/chrome
下面是我的几个示例片段
JavascriptExecutor jse = (JavascriptExecutor) driver; //create jse object and with this object, execute js
jse.executeScript("arguments[0].scrollLeft += 250",driver.findElement(By.className("wux-scroller")));
jse.executeScript("window.scrollBy(500,0)");
jse.executeScript("scroll(500, 0)");
jse.executeScript("window.scrollTo(500,0)");
jse.executeScript("arguments[0].scrollIntoView();",el);
jse.executeScript("arguments[0].scrollLeft = arguments[1];",driver.findElement(By.className("wux-scroller")), j)预期结果:执行水平窗口滚动,直到显示元素
实际结果:滚动不会发生,但也不会引发异常
注意:
scrollbar
<div class="wux-scroller wux-ui-is-rendered" >
<div class="wux-scroller wux-ui-is-rendered" >
F 228
参考以下链接,但没有帮助
how to scroll scrollbar horizontally which is inside a window using java
更新2:
请查找附件中的图片以获得更多的细节。

通知:
,它就会被激活。
//尝试了下面的片段,但没有起作用。
JavascriptExecutor jse = (JavascriptExecutor) driver;
jse.executeScript("window.scrollBy(-2000,0)");
jse.executeScript("arguments[0].scrollLeft = arguments[1];",driver.findElement(By.className("wux-layouts-gridengine-scroller-container")), 500);
jse.executeScript("arguments[0].scrollLeft = arguments[1];",driver.findElement(By.className("wux-scroller")), 500);更新3:解决方案
下面,在selenium java中实现python有助于在我的应用程序中执行水平滚动。
jse.executeScript("document.getElementsByClassName('wux-scroller wux-ui-is-rendered')[0].scrollLeft += 650");
jse.executeScript("document.getElementsByClassName('wux-scroller wux-ui-is-rendered')[0].scrollTo(350,0)");发布于 2020-01-22 09:04:58
请使用Javascript尝试下面的代码,但是使用不同的属性
WebElement element = driver.findElement(By.className("wux-scroller"));
WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.visibilityOf(element));
JavascriptExecutor jse = (JavascriptExecutor) driver;
jse.executeScript("arguments[0].scrollIntoView({behavior: \"auto\", block: \"center\", inline: \"nearest\"});", element);或
jse.executeScript("arguments[0].scrollLeft = arguments[0].offsetWidth", element );发布于 2020-01-22 17:14:16
您需要测试滚动还是需要元素?对于第二种情况,可以将--headless参数添加到驱动程序中。如果还不够的话,可以添加具有大分辨率的window-size参数。
发布于 2020-12-15 18:33:24
您需要选择一个焦点,然后只有它将被滚动。例如。
driver.get("http://www.flipkart.com/");
driver.manage().window().maximize();
driver.findElement(By.linkText("Trimmer")).click();
WebElement scroll = driver.findElement(By.id("brand"));
scroll.sendKeys(Keys.PAGE_DOWN);https://stackoverflow.com/questions/59854548
复制相似问题