Selenium WebDriver处理下拉列表

Selenium WebDriver处理下拉列表

在本节中,您将学习如何处理Selenium WebDriver中的下拉列表。在继续本节之前,先了解一下在Selenium WebDriver中处理下拉列表的一些基础知识。

Selenium WebDriver下拉选择

Selenium WebDriver中的“选择”类用于在下拉列表中选择和取消选择选项。 可以通过将下拉webElement作为参数传递给其构造函数来初始化Select类型的对象。

WebElement testDropDown = driver.findElement(By.id("testingDropdown"));  
Select dropdown = new Select(testDropDown);

如何从下拉菜单中选择一个选项?

WebDriver提供了三种从下拉菜单中选择选项的方法。

1. selectByIndex - 用于根据索引选择一个选项,从0开始。

dropdown.selectByIndex(5);

2. selectByValue - 用于根据“value” 属性选择一个选项。

dropdown.selectByValue("Database");

3. selectByVisibleText - 用于根据选项上的文本选择选项。

dropdown.selectByVisibleText("Database Testing");

让我们考虑下面一个测试用例,自动化以下场景:

注 : 有关文件:testing.html 的内容,可参考前面几章节中给出的代码。

接下来我们将逐步创建测试用例,以便您完全了解如何处理WebDriver中的下拉列表。

第1步. 启动Eclipse IDE并打开在本教程前几节中创建的现有测试套件“Demo_Test”。
第2步. 右键单击“src”文件夹,然后从New -> Class 创建一个新的类文件。

将类的名称命名为“Dropdwn_Test” ,然后单击“完成”按钮。

第3步. 编码自动测试代码。
要调用Google Chrome浏览器,需要下载ChromeDriver.exe文件并将系统属性“在Chrome浏览器上运行测试”设置为ChromeDriver.exe文件的路径。已在本教程前面几篇中讨论过这个问题。 还可以参考“在Chrome浏览器上运行测试”来了解如何下载和设置Chrome驱动程序的系统属性。

以下是为Chrome驱动程序设置系统属性的示例代码:

// System Property for Chrome Driver   
System.setProperty("webdriver.chrome.driver","D:\\ChromeDriver\\chromedriver.exe");

之后,使用ChromeDriver类初始化Chrome驱动程序。
以下是使用ChromeDriver类初始化Chrome驱动程序的示例代码。

// Instantiate a ChromeDriver class.      
Driver driver=new ChromeDriver();

结合上述两个代码块,将获得启动Google Chrome浏览器的代码段。

// System Property for Chrome Driver   
System.setProperty("webdriver.chrome.driver","D:\\ChromeDriver\\chromedriver.exe");  
// Instantiate a ChromeDriver class.      
Driver driver=new ChromeDriver();

之后需要编写代码来自动化第二个测试场景(导航到所需的URL)。以下是导航到所需URL的示例代码:

// Launch Website  
driver.navigate().to("http://localhost/testing.html");

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

import org.openqa.selenium.WebDriver;  
import org.openqa.selenium.chrome.ChromeDriver;  

public class Partial_Link {  

    public static void main(String[] args) {  
        // System Property for Chrome Driver   
        System.setProperty("webdriver.chrome.driver","D:\\ChromeDriver\\chromedriver.exe");  
        // Instantiate a ChromeDriver class.      
        WebDriver driver=new ChromeDriver();
        // Launch Website  
        driver.navigate().to("http://localhost/testing.html");   
    }

}

第4步. 现在,将尝试通过检查其HTML代码来找到下拉菜单。

按照下面给出的步骤找到示例网页上的下拉菜单。

它将启动一个窗口,其中包含下拉菜单涉及的所有特定代码。

记下它的id属性。

第5步. 要自动化第三个测试场景,需要编写代码,从下拉菜单中选择“数据库测试”选项。

以下示例代码:

import org.openqa.selenium.By;  
import org.openqa.selenium.WebDriver;  
import org.openqa.selenium.chrome.ChromeDriver;  
import org.openqa.selenium.support.ui.Select;  

public class Dropdwn_Test  {  

    public static void main(String[] args) {  

       // System Property for Chrome Driver   
        System.setProperty("webdriver.chrome.driver","D:\\ChromeDriver\\chromedriver.exe");  

        // Instantiate a ChromeDriver class.      
        WebDriver driver=new ChromeDriver();  
        // Launch Website  
        driver.navigate().to("http://localhost/testing.html");   

        //Using Select class for selecting value from dropdown  
        Select dropdown = new Select(driver.findElement(By.id("testingDropdown")));  
        dropdown.selectByVisibleText("Database Testing");  

    // Close the Browser  
        driver.close();  

    }  
}

第6步. 右键单击Eclipse代码,然后选择Run As -> Java Application
执行后,上述测试脚本将启动Chrome浏览器并自动执行所有测试方案。