2016-08-26 9 views
2

私はusernamepasswordのリストをExcelシートに持っています。セレンでのユーザーログイン認証?

ログインページの有効なユーザー資格情報を検索しようとしています。

これは私のコードです:

Workbook wBook = null; 
try { 
    wBook = Workbook.getWorkbook(new File("C:/Users/jayant.gupta/Desktop/Book1.xls")); 
} catch (BiffException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
//get sheet 
jxl.Sheet s = wBook.getSheet(0); 

for(int i=0;i<s.getRows();i++) 
{ 
    for(int j=0;j<s.getColumns();j++) 
    { 
     Cell cell=s.getCell(j, i); 
     System.out.println("  "+cell.getContents()); 
     System.out.println("i "+i); 
     System.out.println("j "+j); 
     if(j==0){ 
      driver.findElement(By.id("textBoxUserName")).sendKeys(cell.getContents()); 
     } 
     if(j==1){ 
      driver.findElement(By.id("txtPswd")).sendKeys(cell.getContents()); 
      driver.findElement(By.id("explore")).click(); 
      driver.findElement(By.id("textBoxUserName")).clear(); 
      driver.findElement(By.id("txtPswd")).clear(); 

     }  
    } 
    System.out.println("\n"); 
} 

私はExcelで6つのログイン資格情報の合計を持っています。そこから有効な資格情報は1つだけで、Excelの4位には唯一の資格情報です。

私がExcelの4番目の位置に到達すると、次のページに移動します。

しかし、次の2つのログイン資格情報が有効かどうかを確認したいと思います。

どうすればよいですか?

+1

されています再度試してみるか、シートの行をforeachにして、それを毎回新しくなるようにドライバを初期化する新しいテストにしてください。 –

+0

試してみるたびにログアウトするために 'try/catch'を使用することができます – Andersson

答えて

1
  • 使用parametrized tests代わり
  • を反復のあなたが心配する必要はありませんので、すべてのテストのための新しいwebdriverをインスタンスを作成しますが、次のページに取られている場合は、ログアウトをloginedか
+0

ログアウトURL(「http://example.com/logout」など)がある場合は、新しいテストの前にまたは後でナビゲートできます。 – kotoj

+1

@あなたがあなたのテストでより多くの行動をすればするほど、何らかの理由で失敗するチャンスが増えます。すべてのテストでclear envを使用すると、コードが減少し、安定性も向上します。 – artkoshelev

+0

同意します。しかし、私はそれが事件に依存すると思う。リスクが非常に小さい場合もありますが、実行はより高速です。 – kotoj

関連する問題