2011-04-27 24 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

相關問題