当前位置: 首页 > 知识库问答 >
问题:

java代码执行中的奇怪行为

锺威
2023-03-14

我在登录测试方法中面临奇怪的执行行为。我在selenium网格下运行这段代码。网格配置为独立服务器。因此,首先,我使用批处理文件启动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;
  }
}

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";
}

模块测试。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();       
  }

当我在Eclipse IDE中以调试模式执行代码时,它向我显示了奇怪的行为。首先,它启动浏览器并打开mBaseURL成功登录屏幕。加载页面后,它会在浏览器中显示默认用户名\密码。

现在,当调试点转到pojDataSource时。txt\u用户名(mDriver)。sendKeys(clsConstant.Username);线按F5键,我的调试点转到pojDataSource。txt_密码();它获取错误的密码,脚本执行失败。我担心如果我的调试点在username,但它仍然去获取密码的值,这将如何发生?

尝试的解决方案:1。当我使用Firefox浏览器运行测试时。我从浏览器捕获中清除密码。

共有1个答案

万修为
2023-03-14

重新检查WebElements ID,确保调试时WebDriver可以访问它们。也要尽量避免对WebElements使用“static”。看看页面对象模式。

 类似资料:
  • 我在做Maven项目。我用log4j做了一个日志。但它在给定的文件中显示了一些starnge日志。我试图理解,为什么会出现这种奇怪的日志,但我不明白。请帮助我,为什么这些不需要的行会进入日志文件。 请帮我把这个拿开。 log.properties 我通过阅读这个链接创建了这个文件。 代码是 日志txt-(log.txt的一些起始行)

  • 我写了这个Django视图方法: 出于某种原因,第一个代码不起作用,但是如果我做了如下的小修改,它就会开始工作,我不知道为什么。 当我分析修改时: 和 它们看起来很相似,而且都是列表,里面有相同的信息。但是,当对其调用< code>json.dumps方法时,在第一段代码中,它会在浏览器上引发以下错误。

  • 所以我更新了代码,添加了行所做的是将主线程置于Hibernate状态一段时间,因此jvm可以获得一些时间来创建一个新线程。我正在得到我的预期输出

  • 问题内容: 我使用jsoup从不同页面的html源代码中提取了一些信息。它们大多数是UTF-8编码的。其中之一是使用ISO-8859-1编码的,这会导致一个奇怪的错误(在我看来)。 包含错误的页面是:http : //www.gudi.ch/armbanduhr- metall- wasserdicht-1280x960-megapixels-p-560.html 我用以下代码阅读了所需的Stri

  • 问题内容: 我从Class.getResource()和ClassLoader.getResource()之间有什么区别? 从自己的代码 等同于 无法读取jar文件中的图像的帖子显示了使用 在可执行jar文件中返回null,而 返回正确的URL。 删除前导斜杠后的代表,我希望这些调用是相同的,但显然在这种情况下它们是不同的。即使将特殊的类加载器附加到特定的类上,对于每次调用,它也应该是相同的,再次

  • 问题内容: 所有! 我在LinkedBlockingQueue中发现了奇怪的代码: 谁能解释为什么我们需要局部变量h?它对GC有什么帮助? 问题答案: 为了更好地了解发生了什么,让我们看看执行代码后列表的样子。首先考虑一个初始列表: 然后指向和指向: 然后指向和指向: 现在,实际上我们知道只有一个指向第一个元素的活动引用,它本身就是(),并且我们还知道GC收集的对象不再具有活动引用,所以当方法结束