2011-04-27 80 views
4

我是新来这个论坛,我有点新的硒和周围的一切。我有点熟悉Java,但我当然不是一个亲Webdriver + HtmlUnitDriver + Java +下拉

我知道有这样的线程,但我还没有找到我的答案呢... 因为其中一些是在C#或.NET,...。

我使用Webdriver和HtmlUnitDriver,因为我不想让Selenium弹出浏览器。 一切都必须在后台完成(不想看到任何东西,只有1个结果(如果一切正常或不))。

好的,这就是说,这里是情况。 我正在检查一个网站,在某些时候我需要从下拉列表中选择一个选项(我们假设第二个选项)。 但问题是,这是不行的......

下面是一些代码我使用:

public class LoginLogout implements SeleniumTest{ 

    private WebDriver webDriver; 

    @Override 
    public void setUp(String baseURL){ 
     webDriver = new HtmlUnitDriver(); 
    } 

    @Override 
    public void invoke(){ 
     // Login 

     webDriver.get("http://website"); 
     webDriver.findElement(By.name("username")).sendKeys("Dummy123456"); 
     webDriver.findElement(By.name("password")).sendKeys("Muddy"); 
     webDriver.findElement(By.className("Submit")).click(); 
     webDriver.findElement(By.name("/catalogue")).click(); 
     webDriver.findElement(By.name("/catalogue/search/synthesis/s10")).click(); 
     webDriver.findElement(By.name("firstYear")).findElement(By.name("2008")).isSelected(); 
     webDriver.findElement(By.name("lastYear")).findElement(By.name("2008")).isSelected(); 
     webDriver.findElement(By.className("Submit")).click(); 
     webDriver.findElement(By.className("Label")).click(); 
    } 

    @Override 
    public void tearDown(){ 
     webDriver.close(); 
    } 
} 

如果我选择FIRSTYEAR和LASTYEAR,这就是它会错...

有人能帮我一把! 这将是伟大的,我得到这个工作(在您的帮助)

在此先感谢

回答

5

isSelected()如果元素已被选中或不只会告诉你,它实际上不会设置任何东西。我相信你想要做的就是将WebElement转换为Select对象,该对象提供了用于选择选择框项目的方法。

Select selectBox = (Select)webDriver.findElement(By.name("firstYear")); 
selectBox.selectByValue("2008"); 

您还可以通过指数,我觉得在我并不真正关心选择哪个值,但希望确保一些选择的情况下更可靠的选择。

selectBox.selectByIndex(0); // chooses first item. 
+0

感谢您的回复。当我尝试 - 选择selectBox =(选择)webDriver.findElement(By.name(“firstYear”)); \t \t selectBox.selectByValue(“2008”); - Eclipse强调了这一部分selectByValue,他说:“方法selectByValue(String)是未定义的类型选择”那该怎么办? – user727445 2011-04-28 09:18:11

+1

首先,你使用Selenium 2吗?我是这么认为的,因为你使用WebDriver。其次确保你正在导入正确的Select类,应该是org.openqa.selenium.support.ui.Select。 – Jberg 2011-04-28 17:00:26

+1

对我来说略有不同:select selectBox = new Select(webDriver.findElement(By.id(elementId))); – 2011-08-03 10:42:04

相关问题