在java中从另一类selenium调用测试

时间:2011-07-22 07:21:05

标签: nullpointerexception selenium-rc junit3

这是我从另一个类调用函数的方法 定义了Selenium设置。

public void Transfer() throws Exception {
System.out.println("\nTransfer\n");
    selenium.open("/logon/user");
    selenium.windowMaximize();
    login obj1 = new login();
    obj1.testlogin();
            selenium.click("link=TRANSFERS");
    selenium.waitForPageToLoad("80000");

这是另一个具有为上述调用者执行的函数的类。 上面的设置函数有selenium对象,应该在库中调用listen。

public class login extends SeleneseTestCase{


public void testlogin(){


    System.out.println("\nLogin\n");    
    selenium.type("companyID", "abcd");
    selenium.type("j_username", "xyz");
    selenium.type("j_password", "123456");
    selenium.click("submit_logon");
    selenium.waitForPageToLoad("80000");

    }
}   

我收到以下错误

1) Transfer(test)java.lang.NullPointerException
    at login.testlogin(login.java:12)
    at test.Transfer(test.java:26)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at com.thoughtworks.selenium.SeleneseTestCase.runBare(SeleneseTestCase.j

AVA:212)         在SampleSuite.main(SampleSuite.java:25)

我正在尝试保存所有函数,比如在库中登录,并希望按套件中的要求调用它们,但我无法将selenium浏览器的指针传递给被调用的函数

任何人都可以帮我解决错误

设置代码如下:

  public void setUp() throws Exception {
    selenium = new DefaultSelenium("localhost", 4444, "*chrome", "https://abc.com/");
    selenium.start();
}

提前感谢所有

1 个答案:

答案 0 :(得分:1)

为了简单起见,您基本上可以将Selenium对象一次传递给testlogin(Selenium selenium),或者您可以创建Selenium = globalinstance的静态变量并将其分配给变量并在您想要的类中创建一个包装器在testlogin {selenium globalinstance}中使用。希望这有助于解决这个问题。