我正在使用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
任何人都可以帮助我如何从下拉列表中获取值?
答案 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");
,或XPath或css 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个选项。