访问下拉列表 - selenium webdriver& java的

时间:2014-05-19 05:32:29

标签: java selenium

我正在尝试编写一些自动化测试的测试用例,作为使用java的selenium webdriver中练习分配的一部分。

java版本为1.6,selenium webdriver版本为2.39,而firefox浏览器版本为29.0.1。

我正在尝试访问以下链接中标题为CARSIZE的下拉列表:

http://www.carrentals.com/

我无法操纵它。

我试过以下代码......

    driver.get("http:\\www.carrentals.com/");

    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

    Select dropdown= new Select(driver.findElement(By.xpath("//*[@name='carType']")));

    dropdown.selectByValue("carsize-1");

使用上面的代码,似乎我能够找到元素(因为没有抛出异常)但不能更改值。当我尝试通过SELECTBYVALUE方法更改值时,我得到一个异常,说元素不可见。有人能帮我吗?

以上的Html代码可以在firebug中看到,只是为了获取相关选择框的ID和名称而不是XPath的信息,但我得到了相同的异常。

1 个答案:

答案 0 :(得分:0)

试试这个:

Select dropdown= new Select(driver.findElement(By.xpath("//select[@id='cartype']")));
dropdown.selectByVisibleText("Small Cars");

<强>更新

试试这段代码。它对我有用。

    String dropdownXpath = "//label[@for='cartype']/following-sibling::div[@role='listbox']";
    WebElement textInDropDown = webDriver.findElement(By.xpath(dropdownXpath + "//div[@class='text']"));
    textInDropDown.click();
    webDriver.findElement(By.xpath(dropdownXpath)).sendKeys("Small Cars");

它在dropdown元素中定位文本,然后发送您要选择的值。