如何使用selenium selenium.select(“”,“”)选择下拉列表中的值?

时间:2012-03-29 04:29:24

标签: java selenium selenium-rc

我正在使用Selenium进行自动化。我正在使用DefaultSelenium类,在我们的应用程序中,我有一个下拉列表。我希望从这个下拉列表中获得一个值。

最初,我使用selenium IDE编写脚本,它给了我代码:

selenium.select("id=skuOptionSIZE1c4b403", "label=8");

但是当我开始用代码(Java)编写时,Eclipse仍然会出现错误,而我仍然能够看到页面上的下拉列表id

Exception in thread "main" com.thoughtworks.selenium.SeleniumException: ERROR: Element id=skuOptionSIZE1cd7bfd not found

任何人都可以帮助我如何从下拉列表中获取值?

3 个答案:

答案 0 :(得分:5)

如果您使用的是Selenium 2 aka Webdriver,我会这样做:

Select select = new Select(driver.findElemetn(/*Way to your drop down*/));
select.selectByValue("your value") 
//or
select.selectByVisibleText("your Test");

//alternativly you can do something like this
List<WebElement> options = select.getOptions();
//find your desired option
select.selectByVisibleText(option.getText());

希望有所帮助。

答案 1 :(得分:0)

如果您使用IE8或更高版本,请按 F12 并使用那里的开发人员工具。特别有用的应该是光标图标,即选择逐个元素,这将允许您选择任何元素并查看分配给它的所有属性。

如果使用Firefox 11,则在Web Developer菜单下有一个类似的工具。或者使用更强大但更复杂的Firebug插件。

但是!您将遇到的主要问题是ID会不时发生变化。它似乎是自动生成的。这意味着您将不得不使用其他方式来选择元素。您可以使用selenium.select("id=skuOptionSIZE*", "label=8");,或XPathcss selector找到它。

答案 2 :(得分:0)

如果您下载了Webdriver Support dll,则可以使用以下

SelectElement select = new SelectElement(element);
select.SelectByIndex(8); //Where the number 8 is the base 0 index of the options

因此,如果您有10个选项(0-9)SelectByIndex(8)将返回第9个选项。