2015-03-31 102 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