3

这是我的方法,它从另一个定义的 Selenium Setup 类调用函数。

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

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

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();
}

在此先感谢大家

4

1 回答 1

1

为简单起见,您基本上可以将 Selenium 对象传递给您的测试登录(Selenium selenium),或者您可以创建一个 Selenium = globalinstance 的静态变量并将其分配给一个变量并在您想要使用的类中创建一个包装器测试登录{硒全局实例}。希望这有助于作为简单的解决方案。

于 2012-06-19T09:29:42.770 回答