使用Selenium的Java中的NullPointerException
请查找下面的代码。我在第行遇到了这个问题:使用Selenium的Java中的NullPointerException,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,请查找下面的代码。我在第行遇到了这个问题:dataTransformationsPanel.applyModelListFirstElement() 但如果我在publicstaticvoidmain(stringargs[])方法本身中这样做,它就可以正常工作。请推荐我 package test.dataPage; import helper.DataTransformationsPanel; import helper.Driver; import helper.First; impor
dataTransformationsPanel.applyModelListFirstElement()代码>
但如果我在publicstaticvoidmain(stringargs[])
方法本身中这样做,它就可以正常工作。请推荐我
package test.dataPage;
import helper.DataTransformationsPanel;
import helper.Driver;
import helper.First;
import java.util.concurrent.TimeUnit;
import org.junit.Test;
import org.testng.Assert;
import pageObjects.DataPage;
public class ApplyModel extends Driver {
First first;
DataTransformationsPanel dataTransformationsPanel;
DataPage dataPage;
String columnNameExpected;
public ApplyModel() {
super();
columnNameExpected = "New Predicted Column";
first = new First();
dataTransformationsPanel = new DataTransformationsPanel();
dataPage = new DataPage();
}
@Test
public void applyModel() {
first.login();
first.openDataPage();
dataTransformationsPanel.applyModelListFirstElement();
dataTransformationsPanel.applyModelNewColumnName(columnNameExpected);
dataTransformationsPanel.applyModelOkButton();
/*
* try { Thread.sleep(5000); }
*
* catch (InterruptedException e) { e.printStackTrace(); }
*/
webDriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
String columnNameActual = dataPage.lastColumnInTable();
Assert.assertEquals(columnNameActual, columnNameExpected);
first.removeDataSet();
first.logOut();
}
}
提前谢谢 所以,您想要一个测试类
尝试使用@Before
方法而不是构造函数。请附上stacktrace和main
函数代码,它在其中正常工作。NPE发生在哪里?您尝试过调试吗?我猜你的DataTransformationsPanel是空的。无论如何,您的解决方案不应该只是解决此问题,而是将测试与业务逻辑分开。请提供applyModelListFirstElement()
的代码。可能存在Web驱动程序未在DataTransformationsPanel中初始化的情况。它能点击数据吗?还有一件事,隐式等待您需要为驱动程序声明一次。多次声明不会让它再等待10秒。我使用了下面的代码,但仍然面临问题<代码>@Before public void setUp(){columnname expected=“New Predicted Column”;first=New first();dataTransformationsPanel=New dataTransformationsPanel();dataPage=New dataPage();first.login();first.openDataPage();}