在将一个类函数调用到另一个selenium类时,显示空指针exception

时间:2016-04-26 18:35:58

标签: java selenium

我在课堂上创建了一个java类和密码编写逻辑并确认密码。通过创建类对象在另一个类中调用该类时,它显示空指针异常。

public class Verify_password {
    WebDriver driver;
    String pwd = "password";
    String confirm_pwd = "password";
    String wrong_pwd="yogesh";
    public void password_match(){
        //Password = confirm password
        driver.findElement(By.id("encrypted_pwd")).clear();
        driver.findElement(By.id("confirm_pwd")).clear();
        driver.findElement(By.id("encrypted_pwd")).sendKeys(pwd);
        driver.findElement(By.id("confirm_pwd")).sendKeys(confirm_pwd);
        driver.findElement(By.id("submit-btn")).click();
        if(pwd ==confirm_pwd){
            System.out.println("Password Match");
        }
        else{
            System.out.println("Password doesn't Match");
        }
    }

通过以下方式将此类调用到另一个类:

Verify_password password1 = new Verify_password();
password1.password_match1();

有人可以验证并确认是否可以?

由于

2 个答案:

答案 0 :(得分:0)

您必须在使用password_match1()方法之前创建驱动程序的实例,例如通过创建Verify_password的构造函数并在其中创建WebDriver类的实例。

此外,您应该修改您的类名,使其符合VerifyPasswordPasswordVerifier的正确命名约定。您也可以使用您的方法名称,只需:match() - 毕竟您从类名称知道它涉及密码操作。

答案 1 :(得分:0)

修改

首先,您必须获得依赖项:

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
     <artifactId>selenium-java</artifactId>
      <version>current version</version>
</dependency>
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>htmlunit-driver</artifactId>
    <version>current version</version>
</dependency>

现在你必须初始化一个驱动程序的实例,例如firefox驱动程序:

WebDriver driver = new FirefoxDriver();

之后,您必须致电您要测试的网站:

driver.get("http://www.google.com");

现在您可以找到元素并执行您想要执行的操作:

WebElement element = driver.findElement(By.id());

此外,您应该将元素的引用存储在object中。每个findElement调用都会降低测试的性能。

有关详细信息,请参阅http://www.seleniumhq.org/docs/03_webdriver.jsp