2017-09-14 1 views
0

Sélénium/java PhantomJS:Selenium/java PhantomJs driver.get (loginURL) obtient l'URL de connexion lors de la première exécution. Le deuxième terme, il driver.get (loginURL) à la page d'accueil

En première manche, driver.get(loginURL), se connecter url.

Sur la deuxième exécution, driver.get(loginURL), va à la page d'accueil, au lieu de la page de connexion. Et bien sûr, il ne trouve pas d'éléments de la page de connexion.

(d'exécution de scénario peut échouer et vous déconnecter mon pas être effectuée à la fin)

Toute aide? Des idées pour lesquelles cela se passe?

Merci

Code de la pièce et d'exception:

... 
WebDriver driver; 
PhantomJSDriverService phantomService = PhantomJSDriverService.createDefaultService(); 
System.setProperty("phantomjs.binary.path", "browserDrivers/phantomjs.exe"); 
driver = new PhantomJSDriver(); 

driver.get("https://xxxxxx/yy/"); 
System.out.println("Url :" + driver.getCurrentUrl()); 
WebElement loginField = driver.findElement(By.id("txt-username")); 
WebElement passwdField = driver.findElement(By.id("txt-password")); 
... 

reults de l'impression de la console:

1ère manche: Url: https://xxxxxx/yy/login (correct et trouve également à côté WebElements), échoue dans les prochaines étapes

2e Run: Url: https://xxxxxx/yy/home (incorrect doit être page de connexion à nouveau https://xxxxxx/yy/login)

Exception lancée: org.openqa.selenium.NoSuchElementException: { "errorMessage": "Impossible de trouver l'élément avec id 'txt-username'"

+0

Qunestion n'est pas claire. Pouvez-vous élaborer plus. – imBollaveni

Répondre

0

Pour un nettoyage approprié (après l'échec fermeture de session dans votre cas) vous pouvez implémenter une méthode de démontage qui est exécutée après chaque test dans votre classe de test, par ex. comme ceci (en utilisant Junit4):

@org.junit.After 
public void tearDown() { 
    //your code for performing logout 
    //.... 

    //Close the current window, quitting the browser 
    //if it's the last window currently open. 
    if (driver != null) { 
     driver.close(); 
    } 
}