在本节中,您将学习如何处理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浏览器并自动执行所有测试方案。