【问题标题】:Why do I get a java.lang.NullPointerException [duplicate]为什么我会得到 java.lang.NullPointerException [重复]
【发布时间】:2018-10-29 05:20:42
【问题描述】:

我得到一个 java.lang.NullPointerException for objUserName.sendKeys(uname);

@FindBy(how=How.XPATH,using="//input[@placeholder='Username']")
static WebElement objUserName;
 public LoginFeature(){
    PageFactory.initElements(config.driver, this);
}

public static String Enterusername(String uname){
    objUserName.sendKeys(uname);
    return uname;
}
public static void main(String[] args ) throws Exception {
    // TODO Auto-generated method stub

    LogF.EnterURL("http://localhost:90/greffa");
    LoginFeature.Enterusername("dummycfo");
    LoginFeature.EnterPwd("passw0rd");
}
}

【问题讨论】:

  • objUserName 可能为空。还有sendKeys(...) 是做什么的?
  • 我认为你没有正确使用这个 API...看看这个:stackoverflow.com/questions/18436102/…
  • 你在哪里实例化 objUserName?
  • 因为 objUserName = null;而你试图做 null.sendKeys();

标签: java selenium selenium-webdriver nullpointerexception


【解决方案1】:

PageFactory.initElements 注入 webelement 对象。因为您还没有调用构造函数方法。该对象未启动,它是空对象。

使页面类不是静态的,并启动类调用构造方法

public LoginFeature {
  @FindBy(how=How.XPATH,using="//input[@placeholder='Username']")
   WebElement objUserName;
   public LoginFeature(){
      PageFactory.initElements(config.driver, this);
  }

  public String Enterusername(String uname){
      objUserName.sendKeys(uname);
      return uname;
  }
}

public Login {
  public static void main(String[] args ) throws Exception {  
      LogF.EnterURL("http://localhost:90/greffa");
      LoginFeature loginFeature= LoginFeature();
      loginFeature.Enterusername("dummycfo");
      loginFeature.EnterPwd("passw0rd");
  }
}

【讨论】:

    【解决方案2】:
    1. 您需要定义和初始化 WebDriver 实例。
    2. 此代码:

    @FindBy(how=How.XPATH,using="//input[@placeholder='Username']") 静态 WebElement 对象用户名;公共登录功能(){ PageFactory.initElements(config.driver, this); }

    最好作为 Page 对象移动到另一个类。

    1. 初始化WebDriver实例后,需要使用Driver初始化之前创建的类,所以需要重构这个页面对象。

    只有在这部分代码开始工作之后。

    【讨论】:

      猜你喜欢
      • 2015-07-16
      • 1970-01-01
      • 1970-01-01
      • 2012-10-27
      • 2021-07-22
      • 1970-01-01
      • 1970-01-01
      • 2012-02-23
      • 1970-01-01
      相关资源
      最近更新 更多