web應用中有很多時候我們會遇見<select></select>標簽的下列列表框,一般是無法直接去操作下列列表中的選擇的。selenium webdriver 提供了專門操作select下拉列表的方法。
selectByIndex(2); //通過下拉列表中選項的索引選中第三項,在java中索引從0開始,不同語言,略有差異。
selectByValue("value"); //操作option標簽中屬性值。
selectByVisibleText(“value")//參數為option的text值。
getOptions();//返回select標簽中的所有選項,返回類型式list集合,可以遍歷操作所有選項。
public static void main(String[] args) { System.setProperty("webdriver.firefox.bin", "D:\\Mozilla Firefox\\firefox.exe"); WebDriver driver = new FirefoxDriver(); // 以下是選擇w3shool的select標簽教程未實例 操作下拉列表
driver.get("http://www.w3school.com.cn/tags/tag_select.asp"); String winhand = driver.getWindowHandle(); // 獲取當前句柄
System.out.println(driver.getWindowHandle() + "句柄"); driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); // 設置等待頁面元素
driver.findElement(By.xpath(".//*[@id='maincontent']/div[1]/p[2]/a")).click(); // 點擊頁面中的【親自試一試】按鈕
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); // 設置等待頁面元素
Set<String> handles = driver.getWindowHandles(); for (String j : handles) { if (j.equals(winhand) == false) { driver.switchTo().window(j); // 切換到新開的窗口
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); // 設置等待頁面元素
driver.switchTo().frame("i"); WebElement el = driver.findElement(By.tagName("select")); Select sel = new Select(el); sel.selectByValue("saab"); // 操作下列列表中內容為saab。 // List<WebElement> SelectLinks = driver.findElements(By.tagName("option")); // for (WebElement k : SelectLinks) { // k.click(); //
// } // 該處的for可以循環選擇下列列表中的所有內容。
} } }