📜  Selenium WebDriver-滚动网页

📅  最后修改于: 2020-11-06 04:48:20             🧑  作者: Mango

Selenium WebDriver-滚动网页

在本节中,您将学习如何向下或向上滚动以显示网页上显示的其他信息。

让我们考虑一个测试案例,在该案例中,我们将自动化以下场景:

  • 调用Firefox浏览器
  • 公开网址:www.javatpoint.com
  • 向下滚动网页以显示“ Java技术”部分

我们将逐步创建测试用例,以使您全面了解如何使用JavaScript的“ scrollBy”方法滚动网页。

步骤1。启动Eclipse IDE,并打开我们在本教程前面的课程中创建的现有测试套件“ Demo_Test”。

第2步。右键单击“ src”文件夹,然后从“新建”>“类”创建一个新的类文件。

将您的班级名称命名为“ Scroll_Test”,然后单击“完成”按钮。

第三步让我们进入编码基础。

  • 要调用Firefox浏览器,我们需要下载Gecko驱动程序并为Gecko驱动程序设置系统属性。我们已经在本教程的早期课程中对此进行了讨论。您可以参考“在Firefox浏览器上运行测试”以了解如何下载和设置Firefox驱动程序的系统属性。

这是为Gecko驱动程序设置系统属性的示例代码:

      // System Property for Gecko Driver 
    System.setProperty("webdriver.gecko.driver","D:\\GeckoDriver\\geckodriver.exe" );
  • 之后,我们必须使用所需功能类初始化Gecko驱动程序。

这是使用DesiredCapabilities类初始化壁虎驱动程序的示例代码。

  // Initialize Gecko Driver using Desired Capabilities Class
        DesiredCapabilities capabilities = DesiredCapabilities.firefox();
        capabilities.setCapability("marionette",true);
    WebDriver driver= new FirefoxDriver(capabilities);

结合以上两个代码块,我们将获得代码段以启动Firefox浏览器。

      // System Property for Gecko Driver 
    System.setProperty("webdriver.gecko.driver","D:\\GeckoDriver\\geckodriver.exe" );
        
     // Initialize Gecko Driver using Desired Capabilities Class
    DesiredCapabilities capabilities = DesiredCapabilities.firefox();
    capabilities.setCapability("marionette",true);
    WebDriver driver= new FirefoxDriver(capabilities);
  • 之后,我们需要编写代码以自动化第二个测试场景(导航到所需的URL)

以下是示例代码,可导航到所需的URL:

       // Launch Website
driver.navigate().to("www.javatpoint.com"); 

到目前为止,完整的代码如下所示:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;

public class Scroll_Test {

    public static void main(String[] args) {
        
    // System Property for Gecko Driver 
        System.setProperty("webdriver.gecko.driver","D:\\GeckoDriver\\geckodriver.exe" );
            
    // Initialize Gecko Driver using Desired Capabilities Class
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
            capabilities.setCapability("marionette",true);
            WebDriver driver= new FirefoxDriver(capabilities);
        

      // Launch Website
driver.navigate().to("www.javatpoint.com"); 
    
    }

}

第四步。为了使我们的第三个测试场景自动化,我们需要编写代码,该代码将向下滚动页面以显示JavaTpoint网站上的Java Technology部分。

要滚动网页,我们必须使用JavaScript的scrollBy方法。为了执行JavaScript方法,我们将使用JavaScript执行器。 scrollBy方法采用两个参数,每个参数分别以像素为单位进行水平和垂直滚动。

JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("scrollBy(0, 4500)");

因此,我们的最终测试脚本将如下所示:

import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;

public class Scroll_Test {

    public static void main(String[] args) {
        
        // System Property for Gecko Driver 
        System.setProperty("webdriver.gecko.driver","D:\\GeckoDriver\\geckodriver.exe" );
            
        // Initialize Gecko Driver using Desired Capabilities Class
            DesiredCapabilities capabilities = DesiredCapabilities.firefox();
            capabilities.setCapability("marionette",true);
            WebDriver driver= new FirefoxDriver(capabilities);
        

        // Launch Website
        driver.navigate().to("www.javatpoint.com"); 

        //Scroll down the webpage by 4500 pixels
        JavascriptExecutor js = (JavascriptExecutor)driver;
        js.executeScript("scrollBy(0, 4500)");

    }
}

执行后,上述测试脚本将启动Firefox浏览器并自动执行所有测试方案。