我想在此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
答案 0 :(得分:2)
只需使用下面的水平滚动
JavascriptExecutor jse = (JavascriptExecutor) driver;
jse.executeScript("document.querySelector('table th:last-child').scrollIntoView();");
这应该允许滚动到表格的最后一列
答案 1 :(得分:0)
如果您需要滚动到特定元素,则此功能可同时用于水平和垂直滚动
public void scrollToElement(WebElement element) {
JavascriptExecutor javascriptExecutor = (JavascriptExecutor) getDriver();
javascriptExecutor.executeScript("arguments[0].scrollIntoView(true);", element);
}