Eclipse 无法识别测试类以外的selenium命令并引发错误

Eclipse 无法识别测试类以外的selenium命令并引发错误,eclipse,selenium,junit,Eclipse,Selenium,Junit,我正在使用Selenium+JUnit+Eclipse 我有三门课,分三个包。测试类作为Ain默认包,活动类作为BIn活动包,存储库类作为Cin objectRepository包 如果我在A班做所有的活动,那么它的工作很好。但是如果我将类B中的活动和调用类A中的类B方法分开,那么抛出java.lang.NullPointerException错误 ClassA.java的代码 ClassB.java的代码 但每次它从方法B的IF状态停止,并到达捕捉块。 为什么它甚至没有进入IF或ELSE状态。

我正在使用Selenium+JUnit+Eclipse 我有三门课,分三个包。测试类作为Ain默认包,活动类作为BIn活动包,存储库类作为Cin objectRepository包

如果我在A班做所有的活动,那么它的工作很好。但是如果我将类B中的活动和调用类A中的类B方法分开,那么抛出java.lang.NullPointerException错误

ClassA.java的代码 ClassB.java的代码 但每次它从方法B的IF状态停止,并到达捕捉块。 为什么它甚至没有进入IF或ELSE状态。
我错过什么了吗

您的类B中没有任何selenium实例。我想您的异常是NullPointerException

您在第一个类中启动selenium实例,但在类B中没有指向它的引用


好的做法是拥有一个SeleniumFixture实用程序,它保存对已启动实例的引用,并在测试套件期间管理selenium服务器的生命周期

stacktrace看起来像什么?哦!这个问题我已经解决了。我必须在ClassA中将selenium对象创建为公共静态对象,然后需要将其作为。。。ClassA-----公共类ClassA扩展测试用例{public static Selenium Selenium;}ClassB-----公共类ClassB{public String MethodB抛出异常{String value=null;尝试{ifClassA.Selenium.isElementPresent//input[@name='btnG'和@value='Google Search']{System.out.printlenment存在;value=pass;}
import com.thoughtworks.selenium.DefaultSelenium;
import com.thoughtworks.selenium.Selenium;
import junit.framework.TestCase;
import org.junit.Test;
import activityPkg.ClassB;


public class ClassA extends TestCase {
ClassB objB = new ClassB();
public void setUp() throws Exception
{
selenium = new DefaultSelenium("localhost", 4444, "*firefox", "https://www.google.com");
selenium.start();
selenium.windowFocus();
selenium.windowMaximize();}

@Test
public void testA() throws Exception
{
selenium.open("/");
try
{
Thread.sleep(5000);
String result = objB.MethodB();
}
catch(Exception e)
{
e.printStackTrace();
}
}
package activityPkg;
import com.thoughtworks.selenium.Selenium;

public class RegressionTools {
Selenium selenium;
ObjectRepository objRep = new ObjectRepository();
public String MethodB() throws Exception
{
String value=null;
try
{
selenium.start();
if(selenium.isElementPresent("//input[@name='btnG' and @value='Google Search']"))
{
System.out.println("Element is present");
value = pass;
}
else
{
System.out.println("Element is not present");
value = Fail;
}

}
catch(Exception e)
{
e.printStackTrace();
}
return value;
}
}