我在页面的底部,现在我想通过点击Home键直接滚动到页面顶部(因为页面可能非常长,并向下滚动到底部)。为此,我已经试过这样的事情这是offcourse不工作 -Selenium WebDriver - 点击HOME键
Actions builder = new Actions(driver);
builder.keyDown(Keys.HOME).build().perform();
我在页面的底部,现在我想通过点击Home键直接滚动到页面顶部(因为页面可能非常长,并向下滚动到底部)。为此,我已经试过这样的事情这是offcourse不工作 -Selenium WebDriver - 点击HOME键
Actions builder = new Actions(driver);
builder.keyDown(Keys.HOME).build().perform();
您可以使用以下功能:
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);
你可以很容易地向上滚动或向下使用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
问题更多的信息,我不清楚。你想滚动到页面的顶部? – LittlePanda 2015-03-31 12:30:03
@Manali - 谢谢你的帮助。使用JSE我们可以实现这一点,有没有一种方法可以使用硒按HOME键? – br001 2015-04-01 07:01:31
使用Robot类来模拟按键和keyrelease事件。看到我的答案。 – LittlePanda 2015-04-01 07:05:22