java中代码执行中的奇怪行为

时间:2016-12-15 12:54:54

标签: selenium-webdriver selenium-grid

我在登录测试方法中遇到奇怪的执行行为。我在selenium Grid下运行此代码。和Grid配置为独立服务器。因此,首先我使用批处理文件启动selenium网格(Hub \ Node)以通过测试执行。

以下是我的课程和规格。 码: 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();       
      }
    
  3. 当我在eclipese IDE中以DEBUG模式执行代码时,它会向我显示奇怪的行为。首先,它启动浏览器并使用登录屏幕成功打开mBaseURL。加载页面后,它在浏览器中显示默认的userName \ password。

    现在当调试点到达pojDataSource.txt_UserName(mDriver).sendKeys(clsConstant.Username);线。按F5我的调试点转到pojDataSource.txt_Password();行,它获取错误的密码和脚本执行失败。我担心如果我的调试点是用户名,但仍然会获取密码值,会怎么回事?

    尝试过的解决方案: 1.因为我使用Firefox浏览器来运行测试。我从浏览器中清除了我的密码。

1 个答案:

答案 0 :(得分:0)

重新检查WebElements ID并确保在调试时WebDriver可以访问它们。还要尽量避免使用静态&#39;到WebElements。看看页面对象模式。