2016-05-27 24 views
0

我想關閉瀏覽器無效的用戶名/密碼,但我無法做到這一點。它對於有效的輸入運行良好,但對於無效的輸入,它只會在顯示「無效登錄」的頁面中凍結。這是我的代碼。 setup1只是打開瀏覽器。硒webdriver無效登錄

而(recordset.next()){

    setUp1(); 
        System.out.println(driver1); 
        driver1.manage().timeouts().implicitlyWait(3000, TimeUnit.SECONDS);  

       System.out.println(recordset.getField("NAME")); 
       System.out.println(recordset.getField("PASSWORD")); 

       String store1 = recordset.getField("NAME"); 
       String store = recordset.getField("PASSWORD"); 


       driver1.findElement(By.id("signin_button")).click(); 
       driver1.findElement(By.id("user_login")).clear(); 
       driver1.findElement(By.id("user_password")).clear(); 
       driver1.findElement(By.id("user_login")).sendKeys(store1); 
       driver1.findElement(By.id("user_password")).sendKeys(store); 

       driver1.findElement(By.name("submit")).click(); 


       driver1.findElement(By.xpath("//div/ul[@class = 'nav float-right']/li[3]")).click();    
       driver1.findElement(By.id("logout_link")).click(); 

回答

0

您可以撥打driver1.close()如果driver1.findElement(By.xpath("//div/ul[@class = 'nav float-right']/li[3]"))拋出一個NoSuchElementException例外。

如果當前頁面是瀏覽器中唯一的打開頁面,瀏覽器將被關閉。

下面是一個例子:

try{ 
    WebElement elm = driver1.findElement(By.xpath("//div/ul[@class = 'nav float-right']/li[3]")); 
    elm.click(); 
}catch(NoSuchElementException e){ 
    driver1.close(); 
    break; // exit the loop. 
} 
+0

沒有它不工作。我需要一些當登錄無效時關閉瀏覽器的東西。它不關閉。 –

+0

@AvantikaSarkar而不是'By.xpath(「// div/ul [@class ='nav float-right']/li [3]」)'嘗試獲取僅在有效登錄時顯示的元素或檢查一個僅在無效登錄時顯示的元素,如果它存在,請調用'close()'。 – Titus

+0

雅我試圖添加錯誤元素使用,如果其他但我不能做到這一點。其顯示添加「!= null」。 –