我目前正在尝试滚动垂直滚动条而不滚动整个页面,我希望它能够实现javascript。
这是我用过的代码:
IWebDriver driver = new FirefoxDriver();
driver.Navigate().GoToUrl("http://www.w3schools.com/html/default.asp");
Actions actions = new Actions(driver);
actions.MoveToElement(driver.FindElement(By.Id("leftmenuinnerinner"))).MoveToElement(driver.FindElement(By.Id("leftmenuinner"))).Build().Perform();
for (int i =0;i <= 1000; i++)
{
((IJavaScriptExecutor)driver).ExecuteScript("window.scrollBy(0,10)");
System.Threading.Thread.Sleep(10);
}
使用此代码,整个页面开始滚动而不是滚动条。那么关于如何实现这一点的任何想法?
答案 0 :(得分:1)
下面的内容适用于我。该元素可以是您想要滚动的元素。
WebElement element = driver.findElement(By.id("yourelement"));
JavascriptExecutor jse = (JavascriptExecutor) driver;
jse.executeScript("arguments[0].scrollIntoView();", element);
或者您可以尝试下面的一个。
findElement(By.xpath("yourelement").sendKeys(Keys.SPACE);