在网页中有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("");
}
}
答案 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;
}