2016-12-15 5 views
0

Ich habe seltsame Ausführungsverhalten in Login-Testmethoden. Ich führe diesen Code unter Selen Grid. und Grid ist als eigenständiger Server konfiguriert. Also starte ich zuerst das Selenraster (Hub \ Node) mit der Batch-Datei, um es durch Tests auszuführen.Seltsames Verhalten in Code-Ausführung in Java

Folgendes ist meine Klasse und Spezifikationen. Code: 1. pojDataSource.java:

public class pojDataSource { 

    private static WebElement element = null; 
    private static List<WebElement> elements = null; 

    public static WebElement txt_UserName(WebDriver driver){ 
    driver.findElement(By.id("txtUserName")).clear(); 
    element = driver.findElement(By.id("txtUserName")); 
    return element; 
     } 

    public static WebElement txt_Password(WebDriver driver){  
    driver.findElement(By.id("txtPassword")).clear(); 
    element = driver.findElement(By.id("txtPassword")); 
    return element; 
    } 
} 
  1. clsConstant.java:

    public class clsConstant { 
        public static final String URL = "http://localhost:1234/"; 
        public static final String Username = "username"; 
        public static final String Password = "password"; 
    } 
    
  2. ModuleTest.java:

    public class ModuleTest { 
    
        public RemoteWebDriver mDriver = null; 
        public DesiredCapabilities mCapability = new DesiredCapabilities() ; 
        public WebElement mWebElement = null; 
        public String mBaseURL = clsConstant.URL;  
        public static clsExcelSampleData mAddConnectorXls;  
    
        @Test 
        public void beforeMethod() throws Exception { 
    
        WebDriverWait wdw =null;     
        mCapability.setCapability("platform", org.openqa.selenium.Platform.WINDOWS); 
        mCapability = DesiredCapabilities.firefox(); 
        mCapability.setVersion("45.0.2"); 
        mDriver = new RemoteWebDriver(new URL("http://127.0.0.1:4444/wd/hub/"), mCapability); 
        mDriver.get(mBaseURL);             
        mDriver.manage().window().maximize(); 
        pojDataSource.txt_UserName(mDriver).sendKeys(clsConstant.Username) ; 
        pojDataSource.txt_Password(mDriver).sendKeys(clsConstant.Password) ; 
        pojDataSource.btn_LogIn(mDriver).click();  
        } 
    

Wenn ich den Code im DEBUG-Modus in Eclipe ausführen SE IDE zeigt mir die seltsamen Verhaltensweisen. Starten Sie zuerst den Browser und öffnen Sie den mBaseURL erfolgreich mit dem Anmeldebildschirm. Nach dem Laden der Seite zeigt es standardmäßig Benutzername \ Passwort im Browser.

Nun, wenn der Debug-Punkt zu pojDataSource.txt_UserName (mDriver) .sendKeys kommt (clsConstant.Username); Linie. Durch Drücken von F5 geht mein Debug-Punkt zu pojDataSource.txt_Password(); Zeile und es ruft falsches Passwort und Skriptausführung schlägt fehl. Ich mache mir Sorgen darüber, wie dies passiert, wenn mein Debug-Punkt bei Benutzername ist, aber es immer noch geht, um den Wert des Passwortes zu holen?

Erprobte Lösungen: 1. Wie ich Firefox Browser verwende, um Test zu laufen. Ich lösche mein Passwort vom Browser Catch.

Antwort

0

Überprüfen Sie die WebElements-IDs erneut und stellen Sie sicher, dass sie während des Debuggings von WebDriver erreichbar sind. Versuchen Sie auch, die Verwendung von "statisch" für WebElements zu vermeiden. Sehen Sie sich das Muster "Seitenobjekte" an.

+0

Danke Lucri. Aber den gleichen Code kann ich perfekt ausführen, bevor ich dieses Projekt in meine neue Eclipse-Version re-importiere. – Ishekh

+0

Schön. Fügen Sie diese Information zu der Frage hinzu. – lucrib