2017-09-20 3 views
0

J'utilise Try and catch pour capturer le message contextuel lorsqu'il y a un nom d'utilisateur ou un mot de passe invalide. cependant, le code fonctionne uniquement avec les informations de connexion correcte, lorsque la fenêtre apparaît avec l'erreur, il est de lancer une erreur .... capture d'écran d'erreur est jointe ci-dessousEssayez et attraper avec un message contextuel

Code Screenshot

Error Screenshot

+0

où est '{' pour Si l'état intérieur du bloc de capture? Est-ce une faute de frappe? – Kapil

+0

S'il vous plaît lire pourquoi [une capture d'écran de code est une mauvaise idée] (https://meta.stackoverflow.com/questions/303812/discourage-screenshots-of-code-and-or-errors). Collez le code et formatez-le correctement à la place. – JeffC

Répondre

2

changement de la ligne de

catch(NoSuchElementException e) 

à

catch(UnhandledAlertException e) 

Il peut travaux.

+0

merci beaucoup cette solution fonctionne ..... –

1

Espoir cela vous aidera à

driver.switchTo().alert().accept(); 

Alternativement, si vous voulez prendre le texte d'alerte ajouter DesiredCapabilities

DesiredCapabilities dc = new DesiredCapabilities(); 
    dc.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR, UnexpectedAlertBehaviour.IGNORE); 
    d = new FirefoxDriver(dc); 

Ensuite, vous pouvez le manipuler par

try { 
    click(myButton); 
} catch (UnhandledAlertException f) { 
    try { 
     Alert alert = driver.switchTo().alert(); 
     String alertText = alert.getText(); 
     System.out.println("Alert data: " + alertText); 
     alert.accept(); 
    } catch (NoAlertPresentException e) { 
     e.printStackTrace(); 
    } 
} 
0

changement de la ligne de

catch (NoSuchElementException e)

à

catch (UnhandledAlertException e)