如何使用Selenium WebDriver with Java从下拉列表中选择项目?

时间:2013-12-05 22:51:53

标签: java selenium-webdriver

我有一个登录页面。在我的测试用例中,我可以使用凭据登录,但是一旦我登录,我就试图从下拉列表中选择项目。我有以下代码,但我收到错误

Select select = (Select) driver.findElement(By.id("Id goes here"));
        select.selectByValue("Value Goes here");

我收到以下错误 无法找到元素:{“method”:“id”,“selector”:“Id的值”}

注意:登录的URL与出现选择框的URL不同。这可能是个问题吗?有办法解决吗?

3 个答案:

答案 0 :(得分:0)

当WebDriver根据您的选择标准找不到该元素时,您得到的是NoSuchElementException

确保使用id或其他选择器正确定位WebElement。如果select元素位于iframe内,则必须先使用[driver.switchTo().frame()](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebDriver.TargetLocator.html)切换到该元素。

此外,您无法将WebElement投射到Select

使用:

WebElement elem = driver.findElement(By.id("listofnames"));
Select select = new Select(elem);
select.selectByValue("Name1");

答案 1 :(得分:0)

这对我有用:

String Xcode =  "//li[@class='dropdown']/a"; //<-your xpath here    
WebElement CourseSelector = driver.findElement(By.xpath(Xcode));
CourseSelector.click();
try {Thread.sleep(3000);} // o&c - GIVES TIME FOR ITEMS TO APPEAR
    catch (InterruptedException wtv)    
    {System.out.println("problem on wait with resource load" + wtv);    } 
Xcode =  "//ul/li/a[text()='" + Your_Menu_Item_Here + "']"; // <- again your xpath here
CourseSelector = driver.findElement(By.xpath(Xcode));
CourseSelector.click();

答案 2 :(得分:0)

选择dropdown1;

    dropdown2 = new Select (mozila.findElement(By.id("of the dropdown1"))); 

            dropdown2.selectByValue("9");

选择dropdown2;

    dropdown2 = new Select (mozila.findElement(By.id("of the dropdown2")));  

    dropdown3.selectByValue("2018");