我正在尝试编写一些自动化测试的测试用例,作为使用java的selenium webdriver中练习分配的一部分。
java版本为1.6,selenium webdriver版本为2.39,而firefox浏览器版本为29.0.1。
我正在尝试访问以下链接中标题为CARSIZE的下拉列表:
我无法操纵它。
我试过以下代码......
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的信息,但我得到了相同的异常。
答案 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元素中定位文本,然后发送您要选择的值。