selenium Hybrid Framework中的selectByIndex(data)用于下拉列表的随机值

时间:2016-09-09 07:07:53

标签: selenium-webdriver dropdown

我一直在使用混合框架,即对象,数据和关键字。我根据其索引选择了一个随机下拉值。

在我提到测试数据Test Data的输入文件中,有一个整数列WorkGroup,即我以整数形式给Dropdown输入,这只是下拉列表的索引值。现在在第二张图像中,您可以看到se.selectByIndex(数据)导致了麻烦。

错误是:

  

Select类型中的selectByIndex(int)方法不适用于参数(String)

Code where error comes

public  String selectDropdown(String object,String data){
    APP_LOGS.debug("Selecting dropdown values.");               
    try{
        WebElement _directoryDDL = driver.findElement(By.id(OR.getProperty(object)));
            Select se = new Select(_directoryDDL);
            se.selectByIndex(data); // This is where error is coming. I need to use only index.
            return Constants.KEYWORD_PASS;
        }
    catch(Exception e1){
        return Constants.KEYWORD_FAIL+" Control not found.";
        }
    }

我无法使用 selectByValue selectByVisibleText ,因为每个用户下拉列表的值都会更改。这就是为什么只有索引值才是这里唯一的解决方案。

3 个答案:

答案 0 :(得分:0)

selectByIndex 方法需要一个Integer参数,而您传递的参数 data 是String类型。这就是它发出错误的原因。这是将String转换为Integer的代码。

se.selectByIndex(Integer.parseInt(data));

答案 1 :(得分:0)

正如错误所示,您正在将String传递给需要int的位置。使用Integer.parseInt(String s)Integer.parseUnsignedInt(String s)

答案 2 :(得分:0)

根据您使用Selenium WebDriver的语言,将字符串转换为整数。

Convert a String to a Number

确保输入字符串是一个数字,即“1”,“0”等。否则您将获得例外。