在selenium webdriver中选择多个带有组合的复选框

时间:2017-08-14 10:38:32

标签: java logic

在网页中有12个复选框供用户选择。我必须测试选中复选框的所有可能组合。我必须使用Selenium(Java)自动执行相同的操作。每个选择都是有效的。例如。在12个复选框中,如果我一次选中一个复选框,我将有12个组合。同样,如果我一次选中两个复选框,我将有超过96种组合。你能帮我解决一下选择复选框的逻辑吗?我正在尝试使用多个for循环,但我无法获得所有组合。

int boxcount = 12;
int selected = 1;
for (int i = 1; i <= 12; i++) {
    selected = i;
    for (int jcon = 1; jcon <= 4; jcon++) {
        for (int jbox = 1; jbox <= 4; jbox++) {
            if (selected == i & jbox <= jcon) {
                System.out.print("Yes");
                System.out.print(" "); 
                //++selected; 
            } else {
                System.out.print("No");
                System.out.print(" ");
            }
            //selected--; 
        }
        System.out.println("");
    }
}

1 个答案:

答案 0 :(得分:0)

我使用二进制转换获得了组合

 public static String intToString(int number, int groupSize) {

    StringBuilder result = new StringBuilder();

    for(int i = 11; i >= 0 ; i--) {

        int mask = 1 << i;

        result.append((number & mask) != 0 ? "1" : "0");

        if (i % groupSize == 0)

            result.append('\n');
    }

    result.replace(result.length() - 1, result.length(), "");

    return result.toString();
}


public static List<int[]> get_Combination_list() {

    List<int[]>  combinations_with_int_array = new ArrayList<int[]>();

    for(int i=0;i<=4095;i++) {

        String checkbox_combination =intToString(i,12);

        int[] single_combination = new int[12];

        for (int j=0;j<=11;j++) {

            if(j<11)
            {

                single_combination[j]=Integer.parseInt(checkbox_combination.substring(j, j+1));

            }
            else
            {
                single_combination[j]=Integer.parseInt(checkbox_combination.substring(j));

            }
        }
        combinations_with_int_array.add(single_combination);

    }

    System.out.println("No of combinations : "+combinations_with_int_array.size());

    return combinations_with_int_array;
}