2016-12-15 49 views
0

我在登錄測試方法中面臨奇怪的執行行爲。我在selenium Grid下運行這段代碼。並將Grid配置爲獨立服務器。因此,我首先使用批處理文件啓動硒網格(Hub \ Node),以便通過測試執行。java中代碼執行的奇怪行爲

以下是我的課程和規格。 代碼: 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; 
    } 
} 
  • 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"; 
    } 
    
  • 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();  
        } 
    
  • 當我在eclipe的DEBUG模式下執行代碼在IDE中,它向我展示了奇怪的行爲。首先它啓動瀏覽器並通過登錄屏幕打開mBaseURL成功。加載頁面後,它會在瀏覽器中顯示默認的用戶名\密碼。

    現在當調試點來到pojDataSource.txt_UserName(mDriver).sendKeys(clsConstant.Username);線。通過按F5,我的調試點轉到pojDataSource.txt_Password();行並且它讀取錯誤的密碼並且腳本執行失敗。我擔心如果我的調試點在用戶名,但仍然會獲取密碼的值,會如何發生?

    試過的解決方案: 1.由於我使用Firefox瀏覽器來運行測試。我從瀏覽器中清除我的密碼。

    回答

    0

    重新檢查WebElements ID並確保它們在WebDriver調試過程中可以訪問。還要儘量避免對WebElements使用「靜態」。看看頁面對象模式。

    +0

    感謝Lucrib。但是在我新的Eclipse版本中重新導入這個項目之前,我能夠完美地運行相同的代碼。 – Ishekh

    +0

    不錯。因此,在這個問題上添加這些信息。 – lucrib