0

状態が正しく機能していない場合。Webドライバーを使用してアプリケーションにログインするためのユーザーIDのセットがあり、最初のユーザーと次のユーザーの場合は失敗します。以下のコードを見つけてください。条件が正常に実行されるかどうかをさらに確認する必要があります。

for (int i = 1; i < sh.getRows(); i++)
{           
  while(iter.hasNext())
  {
   System.out.println("Main Window ID :"+iter.next());
  }
 driver.findElement(By.id("lgnLogin_UserName")).clear();
    driver.findElement(By.id("lgnLogin_UserName")).sendKeys(sh.getCell(0,   
  i).getContents());
    driver.findElement(By.id("lgnLogin_Password")).clear();
    driver.findElement(By.id("lgnLogin_Password")).sendKeys(sh.getCell(1, 
  i).getContents());
    driver.findElement(By.id("lgnLogin_LoginButton")).click();
    Thread.sleep(5000L);

    if(driver.findElements(By.linkText("Logout")) != null)
        {

  driver.findElement(By.id("ctl00_Header_Lbtn_Logout")).click();
            msg ="Valid User Login";
            System.out.println(msg);
        }
else
    if(driver.getTitle().contains("700Dealers Inc."))
        {
            driver.findElement(By.xpath("//table[@id='lgnLogin']/tbody
  /tr/td/table/tbody/tr[4]/td")).getText();
            System.out.println(msg);
        }
        else
        if(driver.getTitle().contains("Security Question And Answers"))
        {
            driver.findElement(By.xpath("//table[@id='Table_01']/tbody
 /tr[5]/td/table/tbody/tr/td/table/tbody/tr/td/span/span[1]")).getText();
            System.out.println(msg);
        }
        else
        if(driver.getTitle().contains("700 credit Change Password"))
        {
            driver.findElement(By.xpath("//div[@id='panelscreen']/table
 /tbody/tr/th/span")).getText();
            System.out.println(msg);
        }

この問題で私を助けてください。ヘルプをいただければ幸いです。

4

1 に答える 1

1

Thread.sleep(5000L);おそらくあなたの問題の根源です。

だから、あなたはそれを置き換えたいかもしれません:

Thread.sleep(5000L);
if(driver.findElements(By.linkText("Logout")) != null)

明示的な待機あり:

try {
  WebElement logout = (new WebDriverWait(driver, 5))
    .until(new ExpectedCondition<WebElement>(){
       @Override
       public WebElement apply(WebDriver d) {
        return d.findElement(By.linkText("Logout"));
     }});

  //Logout found, do stuff
} catch(TimeoutException e) {

  //No logout element, do stuff
}
于 2012-12-12T15:58:30.240 に答える