Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Selenium的Java中的NullPointerException_Java_Selenium_Selenium Webdriver - Fatal编程技术网

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