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 webdriver 运行Selenium测试脚本时获取NullPointeException_Selenium Webdriver_Nullpointerexception - Fatal编程技术网

Selenium webdriver 运行Selenium测试脚本时获取NullPointeException

Selenium webdriver 运行Selenium测试脚本时获取NullPointeException,selenium-webdriver,nullpointerexception,Selenium Webdriver,Nullpointerexception,在执行下面的testng测试脚本之后,我得到了NullPointerException。当URL进入测试脚本方法时,启动URL后,它将抛出异常。你能帮我解决这个问题吗 (对象回购)LakesAndMountainsHomePage.java:- import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.PageFactor

在执行下面的testng测试脚本之后,我得到了NullPointerException。当URL进入测试脚本方法时,启动URL后,它将抛出异常。你能帮我解决这个问题吗

(对象回购)LakesAndMountainsHomePage.java:-

import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
import com.actitime.genericlib.WebDriverCommonLib;

public class LakesAndMountainsHomePage extends WebDriverCommonLib{

WebDriver driver;

public LakesAndMountainsHomePage(WebDriver driver)
{
this.driver = driver;
PageFactory.initElements(driver, this);
}


@FindBy(xpath= "//*[@id='the-main-menu']//*[contains(text() , 'LAKES & 
MOUNTAINS')]")
WebElement LandM;

public WebElement LandMHeader()
{
System.out.println("came inside the method");
//LandM.isDisplayed();
return LandM;
}

}
public abstract class BaseTest {

    ExcelLib eLib;
    WebDriverCommonLib wLib;
    WebDriver driver;
    HomePage homepage;

  @BeforeClass
  public void baseBeforeClass() 
  {
    eLib = new ExcelLib();
    wLib = new WebDriverCommonLib();
    driver=Driver.getBrowser();
    driver.manage().window().maximize();
    System.out.println("Browser is launched");
  }

  @BeforeMethod
  public void launchURL()
  {  
      wLib.homePage();
      //loginPage.loginToAPP();
      System.out.println("Navigated to the URL");
  }      
}
public class LakesAndMountainsHomePageTest extends BaseTest{

LakesAndMountainsHomePage lm = new LakesAndMountainsHomePage(this.driver);

 //TC TC131409 [New Lakes & Mountains Tab] : Verify New Lakes & Mountains 
Tab is displayed in header. 
 @Test(priority=0)
  public void lakesAndMountainsHeader()
  {
boolean a= lm.LandMHeader().isDisplayed(); //getting exception here
if(a==true)
{
System.out.println("Lakes And Mountains tab is present in the HomePage");
}
else
{
System.out.println("Lakes And Mountains tab is not present in the 
HomePage");
}
      lm.LandMHeader().click(); 
      System.out.println("It has clicked the tab");
  }
}
BaseTest.java:-

import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
import com.actitime.genericlib.WebDriverCommonLib;

public class LakesAndMountainsHomePage extends WebDriverCommonLib{

WebDriver driver;

public LakesAndMountainsHomePage(WebDriver driver)
{
this.driver = driver;
PageFactory.initElements(driver, this);
}


@FindBy(xpath= "//*[@id='the-main-menu']//*[contains(text() , 'LAKES & 
MOUNTAINS')]")
WebElement LandM;

public WebElement LandMHeader()
{
System.out.println("came inside the method");
//LandM.isDisplayed();
return LandM;
}

}
public abstract class BaseTest {

    ExcelLib eLib;
    WebDriverCommonLib wLib;
    WebDriver driver;
    HomePage homepage;

  @BeforeClass
  public void baseBeforeClass() 
  {
    eLib = new ExcelLib();
    wLib = new WebDriverCommonLib();
    driver=Driver.getBrowser();
    driver.manage().window().maximize();
    System.out.println("Browser is launched");
  }

  @BeforeMethod
  public void launchURL()
  {  
      wLib.homePage();
      //loginPage.loginToAPP();
      System.out.println("Navigated to the URL");
  }      
}
public class LakesAndMountainsHomePageTest extends BaseTest{

LakesAndMountainsHomePage lm = new LakesAndMountainsHomePage(this.driver);

 //TC TC131409 [New Lakes & Mountains Tab] : Verify New Lakes & Mountains 
Tab is displayed in header. 
 @Test(priority=0)
  public void lakesAndMountainsHeader()
  {
boolean a= lm.LandMHeader().isDisplayed(); //getting exception here
if(a==true)
{
System.out.println("Lakes And Mountains tab is present in the HomePage");
}
else
{
System.out.println("Lakes And Mountains tab is not present in the 
HomePage");
}
      lm.LandMHeader().click(); 
      System.out.println("It has clicked the tab");
  }
}
测试脚本:-

import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
import com.actitime.genericlib.WebDriverCommonLib;

public class LakesAndMountainsHomePage extends WebDriverCommonLib{

WebDriver driver;

public LakesAndMountainsHomePage(WebDriver driver)
{
this.driver = driver;
PageFactory.initElements(driver, this);
}


@FindBy(xpath= "//*[@id='the-main-menu']//*[contains(text() , 'LAKES & 
MOUNTAINS')]")
WebElement LandM;

public WebElement LandMHeader()
{
System.out.println("came inside the method");
//LandM.isDisplayed();
return LandM;
}

}
public abstract class BaseTest {

    ExcelLib eLib;
    WebDriverCommonLib wLib;
    WebDriver driver;
    HomePage homepage;

  @BeforeClass
  public void baseBeforeClass() 
  {
    eLib = new ExcelLib();
    wLib = new WebDriverCommonLib();
    driver=Driver.getBrowser();
    driver.manage().window().maximize();
    System.out.println("Browser is launched");
  }

  @BeforeMethod
  public void launchURL()
  {  
      wLib.homePage();
      //loginPage.loginToAPP();
      System.out.println("Navigated to the URL");
  }      
}
public class LakesAndMountainsHomePageTest extends BaseTest{

LakesAndMountainsHomePage lm = new LakesAndMountainsHomePage(this.driver);

 //TC TC131409 [New Lakes & Mountains Tab] : Verify New Lakes & Mountains 
Tab is displayed in header. 
 @Test(priority=0)
  public void lakesAndMountainsHeader()
  {
boolean a= lm.LandMHeader().isDisplayed(); //getting exception here
if(a==true)
{
System.out.println("Lakes And Mountains tab is present in the HomePage");
}
else
{
System.out.println("Lakes And Mountains tab is not present in the 
HomePage");
}
      lm.LandMHeader().click(); 
      System.out.println("It has clicked the tab");
  }
}
下面是异常堆栈跟踪:-

import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
import com.actitime.genericlib.WebDriverCommonLib;

public class LakesAndMountainsHomePage extends WebDriverCommonLib{

WebDriver driver;

public LakesAndMountainsHomePage(WebDriver driver)
{
this.driver = driver;
PageFactory.initElements(driver, this);
}


@FindBy(xpath= "//*[@id='the-main-menu']//*[contains(text() , 'LAKES & 
MOUNTAINS')]")
WebElement LandM;

public WebElement LandMHeader()
{
System.out.println("came inside the method");
//LandM.isDisplayed();
return LandM;
}

}
public abstract class BaseTest {

    ExcelLib eLib;
    WebDriverCommonLib wLib;
    WebDriver driver;
    HomePage homepage;

  @BeforeClass
  public void baseBeforeClass() 
  {
    eLib = new ExcelLib();
    wLib = new WebDriverCommonLib();
    driver=Driver.getBrowser();
    driver.manage().window().maximize();
    System.out.println("Browser is launched");
  }

  @BeforeMethod
  public void launchURL()
  {  
      wLib.homePage();
      //loginPage.loginToAPP();
      System.out.println("Navigated to the URL");
  }      
}
public class LakesAndMountainsHomePageTest extends BaseTest{

LakesAndMountainsHomePage lm = new LakesAndMountainsHomePage(this.driver);

 //TC TC131409 [New Lakes & Mountains Tab] : Verify New Lakes & Mountains 
Tab is displayed in header. 
 @Test(priority=0)
  public void lakesAndMountainsHeader()
  {
boolean a= lm.LandMHeader().isDisplayed(); //getting exception here
if(a==true)
{
System.out.println("Lakes And Mountains tab is present in the HomePage");
}
else
{
System.out.println("Lakes And Mountains tab is not present in the 
HomePage");
}
      lm.LandMHeader().click(); 
      System.out.println("It has clicked the tab");
  }
}
以下是异常堆栈跟踪:-

java.lang.NullPointerException 位于org.openqa.selenium.support.pagefactory.DefaultElementLocator.findElement(DefaultElementLocator.java:69) 位于org.openqa.selenium.support.pagefactory.internal.LocatingElementHandler.invoke(LocatingElementHandler.java:38) 在com.sun.proxy.$Proxy9.isDisplayed上显示(未知源) 位于com.acttime.usertest.lakesandsmountainshomepagetest.lakesandsmountainsheader(lakesandsmountainshomepagetest.java:27) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke处(未知源) 位于java.lang.reflect.Method.invoke(未知源) 位于org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:108) 位于org.testng.internal.Invoker.invokeMethod(Invoker.java:669) 位于org.testng.internal.Invoker.invokeTestMethod(Invoker.java:877) 位于org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1201) 位于org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125) 位于org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109) 位于org.testng.TestRunner.privateRun(TestRunner.java:776) 位于org.testng.TestRunner.run(TestRunner.java:634) 位于org.testng.SuiteRunner.runTest(SuiteRunner.java:425) 在org.testng.SuiteRunner.runsequential上(SuiteRunner.java:420) 位于org.testng.SuiteRunner.privateRun(SuiteRunner.java:385) 运行(SuiteRunner.java:334) 位于org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 位于org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 在org.testng.testng.runSuitesSequentially上(testng.java:1318) 位于org.testng.testng.runSuitesLocally(testng.java:1243) 位于org.testng.testng.runSuites(testng.java:1161) 位于org.testng.testng.run(testng.java:1129) 位于org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:114) 位于org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251) 位于org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)


在执行下面的testng测试脚本之后,我得到了NullPointerException。当URL进入测试脚本方法时,启动URL后,它将抛出异常。你能帮我一下吗。

这个实例化是非法的

LakesAndMountainsHomePage lm = new LakesAndMountainsHomePage(this.driver);
这是空指针异常的根本原因


将此语句移动到BaseTest类中,创建一个类字段并在@BeforeClass方法中实例化。另外,删除此操作符

我无法看到指定驱动程序类型(firefox、chrome、IE)的驱动程序类的实现被初始化。

另一个查询的可能副本有不同的问题,因为在我的代码中,我可以在浏览器中启动URL,但当我使用page factory从对象存储库执行某些操作时,我得到了NullPointerException。附加异常stacktrace@shashanksinha是一个很好的做法!非常感谢@Manmohan_singh。代码正在执行。如果我保留lakesandsmountainshomepage lm=new lakesandsmountainshomepage(this.driver),您能解释一下问题是什么吗;我的测试脚本类中的语句?测试脚本类继承了BastTest中带TestNG注释的方法,因为没有定义构造函数,所以JVM永远不会获取LakesAndMountainsHomePage的实例化。要将其引入执行流,必须将实例化移动到@BeforeClass方法中。或者,您也可以使用在不同的驱动程序java类中初始化的类构造函数。