2015-03-31 104 views
0

我在页面的底部,现在我想通过点击Home键直接滚动到页面顶部(因为页面可能非常长,并向下滚动到底部)。为此,我已经试过这样的事情这是offcourse不工作 -Selenium WebDriver - 点击HOME键

Actions builder = new Actions(driver); 
     builder.keyDown(Keys.HOME).build().perform(); 
+0

问题更多的信息,我不清楚。你想滚动到页面的顶部? – LittlePanda 2015-03-31 12:30:03

+0

@Manali - 谢谢你的帮助。使用JSE我们可以实现这一点,有没有一种方法可以使用硒按HOME键? – br001 2015-04-01 07:01:31

+0

使用Robot类来模拟按键和keyrelease事件。看到我的答案。 – LittlePanda 2015-04-01 07:05:22

回答

1

您可以使用以下功能:

void scrollToBottom(WebDriver driver) 
    { 
     ((JavascriptExecutor)driver).executeScript("window.scrollTo(0,Math.max(document.documentElement.scrollHeight,document.body.scrollHeight,document.documentElement.clientHeight));"); 
    } 

void scrollToTop(WebDriver driver) 
    { 
     ((JavascriptExecutor)driver).executeScript("window.scrollTo(0,0));"); 
    } 

void scrollToMiddle(WebDriver driver) 
    { 
     ((JavascriptExecutor)driver).executeScript("window.scrollTo(0,Math.max(document.documentElement.scrollHeight/2,document.body.scrollHeight,document.documentElement.clientHeight/2));"); 
    } 

和滚动元件眼帘:

WebElement element = driver.findElement(By.id("id_of_element")); 
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element); 

按HOME Key:

Robot robot = new Robot(); 
robot.keyPress(KeyEvent.VK_HOME); 
robot.keyRelease(KeyEvent.VK_HOME); 
0

你可以很容易地向上滚动向下使用JavascriptExecutor

在您使用JavascriptExecutor之前,请在您的测试代码中导入它,如下所示。

import org.openqa.selenium.JavascriptExecutor; 

现在创建的的webdriver界面如下,一个实例(假设你的测试的浏览器,火狐

WebDriver driver = new FirefoxDriver(); 

向下滚动:

JavascriptExecutor jse = (JavascriptExecutor)driver; 
jse.executeScript("scroll(0, 250)"); //y value '250' can be altered 

向上滚动:

JavascriptExecutor jse = (JavascriptExecutor)driver; 
jse.executeScript("scroll(250, 0)"); //x value '250' can be altered 

而且对滚动请点击here