我在頁面的底部,現在我想通過點擊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