从selenium webdriver下拉列表中选择值的问题

时间:2016-04-18 18:27:05

标签: java selenium

如果选择器的ID在注册页面中重复,如何从下拉列表中选择值?我在selenium web驱动程序中编写测试脚本以从下拉控件中检索值,但始终显示元素未找到异常。

代码是,

Select dropdown = new Select(driver.findElement(By.id("cat_id"))); 
dropdown.selectByIndex(1);

目标网页为:http://talentrack.in/register

1 个答案:

答案 0 :(得分:0)

您的问题的简单解决方案是使用css或xpath选择器:

Select dropdown = new Select(driver.findElement(By.cssSelector("#cat_id.req"))); 
dropdown.selectByIndex(1);

在尝试编写更多代码之前,我强烈建议您学习如何使用css和xpath选择器。开始的好地方是here

您还应该考虑安装FirePath Firefox插件,因为它是提高学习速度的绝佳工具。

编辑:

这是我的完整代码:

import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.support.ui.WebDriverWait;

public class test{

private WebDriver driver;
private WebDriverWait wait;

    @Test
    public void main() throws InterruptedException{     
    driver = new ChromeDriver();
    wait = new WebDriverWait(driver, 30);
    driver.manage().window().maximize(); 
    driver.get("http://talentrack.in/register");
    wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("#cat_id.req")));
    Select dropdown = new Select(driver.findElement(By.cssSelector("#cat_id.req"))); 
    dropdown.selectByIndex(5);
    Thread.sleep(5000);   
    driver.close();
    }}