此文主要讲述用 Java 编写 Selenium 自动化测试脚本编写过程中,对下拉列表框 Select 的操作。
下拉列表是 Web UI 自动化测试过程中使用率非常高的,通常有两种形式的下拉列表,一种是 Select 的下拉列表,此种操作的时候比较简单,定位到元素后直接操作即可;还有的下拉列表是以多个 div + js + input 的形式实现,input 用于存储选择的项的 value 值;当然也会有其他方式实现的下拉列表。
希望能对初学 Selenium2 WebUI 自动化测试编程的亲们有所帮助。若有不足之处,敬请大神指正,不胜感激!
以下为 Selenium 操作下拉列表 Select 的 Java 自动化测试脚本实例源代码,敬请参阅!
1 package main.aaron.demo.droplist; 2 3 import main.aaron.sele.core.TestCase; 4 5 import org.openqa.selenium.By; 6 import org.openqa.selenium.WebElement; 7 import org.openqa.selenium.support.ui.Select; 8 import org.testng.annotations.Test; 9 10 /** 11 * Selenium 操作下拉列表实例-Select 12 * 13 * @author Aaron.ffp 14 * @version V1.0.0: autoSeleniumDemo main.aaron.demo.droplist Droplist01.java, 2015-6-16 19:03:51 Exp $ 15 */ 16 public class Droplist01 extends TestCase{ 17 // 获取需要打开的链接的 URL 路径 18 private final String baseUrl = this.PROJECTHOME + this.FILESEPARATOR + "source" + 19 this.FILESEPARATOR + "html" + this.FILESEPARATOR + "selectDemo.html"; 20 21 @Test 22 public void testDropList(){ 23 this.webdriver.get(this.baseUrl); 24 25 // 获取元素-下拉列表 26 WebElement goodsTypeList = this.webdriver.findElement(By.id("goodsType")); 27 28 // 将元素转换为 Select 29 Select gtl = new Select(goodsTypeList); 30 31 // 模拟用户点击动作展开下拉列表,也可不执行直接选择; 32 // 若是执行此步再选择下拉列表之后无其他操作时,列表会一直存在;执行其他操作时,列表收起 33 goodsTypeList.click(); 34 35 // 通过列表项的 option 索引选择,也可不执行 36 gtl.selectByIndex(3); 37 38 this.webdriver.findElement(By.id("goods")).clear(); 39 this.webdriver.findElement(By.id("goods")).sendKeys(this.selectSelected(gtl)); 40 41 /** 42 // 通过列表项的 option 的 value 值选择 43 gtl.selectByValue("3v"); 44 45 // 通过列表项的 option 的 text 值选择 46 gtl.selectByVisibleText("汽车精品"); 47 48 // 遍历列表项的所有可选项,并选择对应的项 49 for (int i = 0; i < gtl.getOptions().size(); i++) { 50 gtl.getOptions().get(i).click(); 51 } 52 53 // 遍历列表项的所有可选项,并选择对应的项 54 for (WebElement item : gtl.getOptions()) { 55 item.click(); 56 } 57 */ 58 } 59 }