使用Selenium在WebDriver中处理下拉菜单和多选
我们可以使用Selenium WebDriver中的Select类来处理多选下拉菜单。多选下拉菜单允许选择多个选项。
下面列出了处理多选下拉菜单的Select方法:
getOptions – 返回下拉菜单中所有选项的列表。
Select s = new Select(e); List<WebElement> l = s.getOptions();
getFirstSelectedOption – 返回下拉菜单中选定的选项。如果有多个选项被选中,则只返回第一个项目。
Select s = new Select(e); l = s. getFirstSelectedOption();
isMultiple – 返回布尔值,如果下拉菜单允许选择多个项目,则返回true。
Select s = new Select(e); boolean l = s.isMultiple();
selectByIndex – 以参数形式传递要由下拉菜单选择的选项的索引。索引从0开始。
WebElement e = driver.findElement(By.id("slc")); Select s = new Select(e); s.selectByIndex(0);
selectByValue – 以参数形式传递要由下拉菜单选择的选项的value属性。下拉菜单中的选项应具有value属性,以便可以使用此方法。
WebElement e = driver.findElement(By.id("slc")); Select s = new Select(e); s.selectByValue("option 1");
deselectByVisibleText – 以参数形式传递要由下拉菜单取消选择的选项的可见文本。它仅适用于多选下拉菜单。
WebElement e = driver.findElement(By.id("slc")); Select s = new Select(e); s.deselectByVisibleText("Selenium");
deselectByIndex – 以参数形式传递要由下拉菜单取消选择的选项的索引。索引从0开始。它仅适用于多选下拉菜单。
WebElement e = driver.findElement(By.id("slc")); Select s = new Select(e); s.deselectByIndex(0);
deselectByValue – 以参数形式传递要由下拉菜单取消选择的选项的value属性。它仅适用于多选下拉菜单。
WebElement e = driver.findElement(By.id("slc")); Select s = new Select(e); s.deselectByValue("option 1");
selectByVisibleText – 以参数形式传递要由下拉菜单选择的选项的可见文本。
WebElement e = driver.findElement(By.id("slc")); Select s = new Select(e); s.selectByVisibleText("Selenium");
deselectAll – 取消选择下拉菜单中所有选定的选项。
WebElement e = driver.findElement(By.id("slc")); Select s = new Select(e); s.deselectAll();
多选下拉菜单具有一个select标签,其项目由option标签表示。
示例
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import java.util.concurrent.TimeUnit; import org.openqa.selenium.support.ui.Select public class MultiDrpDwn{ public static void main(String[] args) { System.setProperty("webdriver.gecko.driver", "C:\Users\ghs6kor\Desktop\Java\geckodriver.exe"); WebDriver driver = new FirefoxDriver(); //implicit wait driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); //maximize browser driver.manage().window().maximize(); //URL launch driver.get("https://tutorialspoint.com/selenium/selenium_automation_practice.htm"); //identify dropdown WebElement d= driverfindElement(By.xpath("//select[@name='selenium_commands']")); //object of Select class Select s=new Select(d); //get options of dropdown in list List t =s.getOptions(); System.out.println("Options are: "); for (WebElement i: t){ System.out.println(i.getText()); } //return true if multi-select dropdown Boolean b=s.isMultiple(); System.out.println("Boolen value for drodown: "+ b); //select item by index s.selectByIndex(2); Thread.sleep(1000); //select item by visible text s.selectByVisibleText("Wait Commands"); Thread.sleep(1000); //get first selected option in dropdown WebElement f = s.getFirstSelectedOption(); System.out.println("First selected option is: "+ f.getText()); //deselect option by index s.deselectByIndex(2); Thread.sleep(1000); //deselect all selected items s.deselectAll(); driver.close(); } }
输出
广告