我在页面底部,现在我想通过单击Home键直接向上滚动到页面顶部(因为页面可能很长并且向下滚动到底部)。 为此,我尝试了类似的方法,但是这种方法是行不通的-

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

#1楼 票数:2

您可以使用以下功能:

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键:

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

#2楼 票数:0

您可以使用JavascriptExecutor轻松向上向下 滚动

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

import org.openqa.selenium.JavascriptExecutor;

现在,如下所示创建一个WebDriver界面实例(假设您的测试浏览器是Firefox

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 

另外,有关滚动的更多信息,请单击此处

  ask by brij translate from so

未解决问题?本站智能推荐:

1回复

Selenium与WebDriver-等

我使用WebDriver在Java中使用Selenium测试套件。 我有一个通用的等待函数,它使用一个CSS选择器并等待元素变为存在和可见,然后使用WebDriverWait进行断言。 但是,现在,在继续之前,我希望有一些东西等待某个类型的所有元素,这些元素在DOM中不再可见。 确切的例子
2回复

WebDriver-使用Selenium检查忘记密码的功能

我正在使用Selenium Webdriver + Java检查忘记密码的功能。 正在执行以下步骤: 1]点击“忘记密码”链接。 2]输入电子邮件ID以恢复帐户: 3]输入有效的电子邮件ID后,OTP发送到电子邮件ID:到现在为止,它运行良好。 但是现在我需要在文本字段中输
2回复

webdriver-如何列出所有内容并单击一个href

我可以列出所有title =“ Race 1” , “ Race 2”, “ Race 3”,然后从以下HTML中使用python列出吗? 然后一一点击,即总共点击3次。 第一次单击“种族1” ,第二次单击“种族2” ,第三次单击“种族3” ,谢谢!
1回复

Webdriver-如何存在属性

我试图断言特定的“ID”包含“隐藏”属性。 “隐藏”属性实际上永远不会有值。 如果我点击某个特定按钮就会存在,如果我没有点击某个特定按钮就不存在。 这是代码: 我试图获取属性的句柄如下,但我没有得到任何东西:
1回复

Selenium、webdriver-之后找不到xpath浏览器是否应该关闭。Python

你好,我是新手,我有一个问题。它是关于我网站的帐户创建者的。 .. 有时会显示错误:消息:无法定位元素://*[@id="elInput_email"] 关闭浏览器而不检查我该怎么做最好? 我试试 但不起作用。 如果无法找到 XPATH,我希望关闭 webdrive(浏览器)。
3回复

WebDriver-如何找到没有ID的iframe

我正在尝试切换到iframe以查找元素,但是由于iframe没有id或name ,我无法找到iframe <div id="eyein-modal" style="display: block; position: fixed; width: 100%; height: 100%; top
2回复

无法使用WebDriver单击Selenium中的链接

当我运行以下URL时,在打开站点和System.out.println(“ Site open”);时,错误显示在driver.get(URL)中; 没有显示。 请帮助我为什么显示此错误。 错误:
2回复

Webdriver-通过标签定位输入(Python)

如何使用WebDriver通过其标签找到输入字段? 我喜欢测试某种Web表单,该表单不幸使用了动态生成的ID,因此不适合用作标识符。 但是,与每个Web元素相关联的标签仍然很适合我。 不幸的是,我无法通过网络上提供的一些建议来做到这一点。 SO上有一个线程,但是没有得到可接受的答案: