2017-10-09 4 views
0

Après le script Autoit termine me connecter à travers les fenêtres authentifie mon sélénium cesse de fonctionner et ne pas exécuter une commande sur le navigateur (Firefox)sélénium UnhandledalertException sur Firefox ne pas exécuter les classes WebDriver

Système

Version: 19.0 Plate-forme: Windows 7 Firefox: 56,0 (64 bits) sélénium: 3.6.0 Testcase

Je veux obtenir le titre de ma page Web, mais unbale pour imprimer comme navigateur ne pas lire une classe .driver

public static void main(String[] args) throws IOException { 
    System.setProperty("webdriver.gecko.driver", "C:/Users/aamir.fatimi/Downloads/geckodriver-v0.19.0-win64/geckodriver.exe"); 

WebDriver driver = new FirefoxDriver(); 
driver.get("http://dbu-export-09/en/Pages/default.aspx"); 
Runtime.getRuntime().exec("C:\\Users\\aamir.fatimi\\Desktop\\AutoIT\\Autoit.exe"); 
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
String get_Title = driver.getTitle(); 

System.out.println("Title is" + get_Title); 
driver.quit(); 
+0

Y a-t-il une exception affichée ou elle se bloque? –

+0

Essayez d'utiliser la fonction Thread.sleep() ou essayez en mode débogage. –

+0

@AlexeyR. J'ai mentionné la trace de la pile ne pas être pendu il suffit d'ouvrir ma page Web après l'authentification, puis n'exécuter aucune commande –

Répondre

-1

ÉDITÉ:

Vous pouvez attendre pour recevoir une alerte pour être absent de cette façon:

(new WebDriverWait(driver, 10)) 
    .until(ExpectedConditions.not(ExpectedConditions.alertIsPresent())); 

juste après l'exécution de votre script Autoit pour vous assurer que le titre de WebDriver get quand Autoit est en fait fini. En supposant bien sûr votre script AutoIt ne laisse aucune alerte pendaison, dans ce cas, vous pouvez simplement essayer:

//Snippet from answer of smit9234 - not tested 
try { 
    Alert alert = driver.switchTo().alert(); 
    alert.sendKeys(username + Keys.TAB.toString() + password); 
    alert.accept(); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

à nouveau, juste après (ou probablement même au lieu, si le script est censé fermer l'alerte et fonctionne juste de manière incorrecte/incohérente) le script. Ou modifier Autoit pour fermer alerte, et aller avec l'option 1.

+1

Comment savez-vous que l'alerte est l'alerte de Windows si cette information n'a pas été fournie? Et comment dans ce cas ma suggestion de fermer l'alerte avec Autoit n'aide pas? S'il vous plaît reconsidérer votre downvote. – Kudin

+0

Désolé, mais qu'est-ce que cela a à voir avec quoi que ce soit? Avez-vous lu ma réponse? – Kudin

+0

Kudin, éditez votre réponse et je vous alerterai. Votre réponse est correcte. – smit9234

-1

expansion sur la réponse du Kudin ci-dessus:

  1. Supprimez le script AutoIt
  2. Ajoutez ce qui suit à la place de celui-ci
try { 
    Alert alert = driver.switchTo().alert(); 
    alert.sendKeys(yourusername + Keys.TAB.toString()+yourpassword); 
    alert.accept(); 
} catch (Exception e) { 
    e.printStackTrace(); 
}