在本节中,您将学习如何向下或向上滚动以显示网页上显示的其他信息。
让我们来看看下面一个测试用例,它将自动化以下场景:
我们将逐步创建测试用例,以便您完全了解如何使用JavaScript的“scrollBy”方法滚动网页。
第1步 - 启动Eclipse IDE并打开在本教程前几节中创建的测试套件“Demo_Test”。
第2步 - 右键单击“src”文件夹,然后从 New -> Class 创建一个新的类文件。
将类的名称命名为“Scroll_Test” ,然后单击“完成”按钮。
第3步 - 开始编码代码。
要调用Firefox浏览器,需要下载Gecko驱动程序并为Gecko驱动程序设置系统属性。在本教程的几篇文章中已经讨论过这个问题,可以参考“在Firefox浏览器上运行测试”来了解如何下载和设置Firefox驱动程序的系统属性。
以下是为Gecko驱动程序设置系统属性的示例代码:
// System Property for Gecko Driver System.setProperty("webdriver.gecko.driver","D:\\GeckoDriver\\geckodriver.exe" );
之后使用DesiredCapabilities
类初始化Gecko Driver。以下是使用DesiredCapabilities
类初始化gecko驱动程序的示例代码。
// Initialize Gecko Driver using Desired Capabilities Class DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true); ebDriver 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 navigate().to("www.zyiz.net");
到目前为止完整的代码如下所示:
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.zyiz.net"); } }
第4步 - 要自动化第三个测试场景,需要编写将向下滚动网页的代码,以显示找一找教程网教程网站上的其它技术部分。
要滚动网页,可使用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.zyiz.net"); //向下滚动网页1500像素 JavascriptExecutor js = (JavascriptExecutor)driver; js.executeScript("scrollBy(0, 1500)"); } }
执行后,上述测试脚本将启动Firefox浏览器并自动执行所有测试方案。