QAとして2つのテーブルを比較する必要があります。私は、両方の値をSeleniumで次のコードを使用して抽出しています。Selenium with Javaを使用して2つのテーブルを比較する
はFYI:私は2つのテーブルのそれぞれのために私は両方のテーブルの各セルが等しいかどうかを確認したい(すなわち、各環境内の1つ)
String first_part = ".//*[@id='Matrix']/tbody/tr[";
String second_part = "]/td[";
String third_part = "]/a";
//rows of the matrix table (Always 7)
for (int i=4; i<=7; i++){
//Columns of the matrix table (Always 4)
for (int j=1; j<=4; j++){
//Prepare final xpath for each cell value
String matrix_cell_path = first_part+i+second_part+j+third_part;
//Retrieve cell-value
String matrix_cell_data= driver.findElement(By.xpath(matrix_cell_path)).getText();
System.out.print("matrix_cell_data["+i+"]["+j+"]= "+matrix_cell_data + " ");
}
System.out.println("");
System.out.println("");
}
String first_part_Prod = ".//*[@id='Matrix']/tbody/tr[";
String second_part_Prod = "]/td[";
String third_part_Prod = "]/a";
//rows of the matrix table (Always 7)
for (int k=4; k<=7; k++){
//Columns of the matrix table (Always 4)
for (int l=1; l<=4; l++){
//Prepare final xpath for each cell value
String matrix_cell_path_Prod = first_part_Prod+k+second_part_Prod+l+third_part_Prod;
//Retrieve cell-value
String matrix_cell_data_Prod = second_driver.findElement(By.xpath(matrix_cell_path_Prod)).getText();
System.out.print("matrix_cell_data_Prod["+k+"]["+l+"]= "+matrix_cell_data_Prod + " ");
}
System.out.println("");
System.out.println("");
}
二つの異なるブラウザのウィンドウと異なる変数名を使用していました。どうやってするの?
私は、次のチェックを使用しますが、エラーを示しています
matrix_cell_dataは、変数に解決することはできません。
//Matrix Data - Content Check:
try {
matrix_cell_data = matrix_cell_data_Prod;
System.out.println("Great");
}catch (Exception ex2){
System.out.println("Exception"+ex2);
}
両方の変数はforループの内部で定義されているため、ループの各繰り返しの内側には可視性が制限されています。値の位置を参照して2つの配列を比較する場合は、値を2次元配列に格納します。または、リストを使用してストアして比較する – Grasshopper
簡単な方法は、各セルを文字列ビルダーに追加することです。次に、文字列を比較して差異を取得します。 –