如何使用selenium webdriver进行水平滚动

问题描述 投票:0回答:1

我想在这个site上使用水平滚动

1)首先减小浏览器大小,直到您看到表滚动条。

我已经完成了以下代码片段,但它对我不起作用。

driver.get("https://weather.com/en-IN/weather/5day/l/USID0011:1:US");
Dimension d = new Dimension(521,628);
driver.manage().window().setSize(d);
driver.manage().timeouts().implicitlyWait(25, TimeUnit.SECONDS);

到目前为止,我的代码运行良好,但我的执行从此处开始停止。

我用Action class尝试了这个滚动问题,但同样的问题正在被复制。

Actions act = new Actions(driver);
WebElement horizontal_scroll = driver.findElement(By.xpath("//div[@id='twc-scrollabe']/table"));
act.clickAndHold(horizontal_scroll).moveByOffset(40, 0).release().perform();

我也尝试过以下方法,但同样的问题正在被复制。

WebElement horizontal_scroll = driver.findElement(By.xpath("//div[@id='twc-scrollabe']/table"));
JavascriptExecutor js = (JavascriptExecutor)driver; 
js.executeScript(driver.execute_script("arguments[0].scrollIntoView()", horizontal_scroll));

在我的应用程序中,我不能使用此方法,因为style标记内没有table属性。

JavascriptExecutor jse = (JavascriptExecutor) driver;     
jse.executeScript("document.getElementById(''twc-scrollabe').setAttribute('style', 'position: relative; top: 0px; left: -658px; width: 1461px;')");

任何人都可以帮我解决这个问题吗? 您的帮助必须得到赞赏。 最好的祝福, Jainish Kapadia

java selenium selenium-webdriver scrollbar
1个回答
2
投票

只需使用下面的水平滚动

JavascriptExecutor jse = (JavascriptExecutor) driver;     
jse.executeScript("document.querySelector('table th:last-child').scrollIntoView();");

这应该允许滚动到表的最后一列

© www.soinside.com 2019 - 2024. All rights reserved.