除了Test类以外,无法识别硒命令并抛出错误

问题描述

|| 我正在使用Selenium + JUnit + Eclipse 我有3个课程的3个班级。测试类为A(在默认包中),活动类为B(在活动包中),存储库类为C(在objectRepository包中)。 如果我在A类中进行所有活动,则其工作正常。但是,如果我将类B中的活动分开并在类A中调用类B方法,则会引发java.lang.NullPointerException错误... ClassA.java的代码
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();
}
}
ClassB.java的代码
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;
}
}
但是每次它从MethodB的IF条件停止并捕获到块。 为什么它甚至没有进入IF或ELSE条件。 我在那里想念什么吗?     

解决方法

您的B类中没有任何硒实例。我想您的例外是
NullPointerException
您在第一堂课中启动了Selenium实例,但在B类中却没有指向它的引用 良好的做法是创建一个“ 3”实用程序,该实用程序保存对启动实例的引用,并在测试套件中管理硒服务器的生命周期。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...