【问题标题】:Exception in thread "main" java.lang.NullPointerException in selenium when trying to run a test case尝试运行测试用例时,selenium 中的线程“main”java.lang.NullPointerException 中的异常
【发布时间】:2015-01-02 15:19:03
【问题描述】:

下面是我的简单测试用例程序:

    package mypackage;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;


public class myclass {

    public WebDriver driver;
    public static void main(String[] args) {
        myclass dr= new myclass();
        dr.start();
        dr.select();
    }

    public void start(){

        WebDriver driver= new FirefoxDriver();
        driver.get("https://www.google.co.in/");
    }

    public void select(){
        driver.findElement(By.linkText("Gmail")).click();
    }

}

但每次我运行它都会引发以下错误:

    Exception in thread "main" java.lang.NullPointerException
    at mypackage.myclass.select(myclass.java:26)
    at mypackage.myclass.main(myclass.java:15)

浏览器启动并显示谷歌主页,但选择 gmail 链接的下一步操作没有发生并出现错误。 **在不同的浏览器(即 chrome)上尝试过,但错误仍然存​​在

请帮我解决这个问题,我是硒新手..

【问题讨论】:

    标签: selenium webdriver


    【解决方案1】:

    在 Java 中查找“变量范围”。

    这一行:

    driver.findElement(By.linkText("Gmail")).click();
    

    正在引用:

    public WebDriver driver;
    

    它永远不会被设置为任何东西。

    这应该可以修复该错误:

    public void start(){
        driver= new FirefoxDriver();
        driver.get("https://www.google.co.in/");
    }
    

    此外,类名应以大写字母开头。

    【讨论】:

      【解决方案2】:

      只需从上面已经声明的 start() 方法中删除“WebDriver”实例,如果使用它,则全局声明的“WebDriver”不在方法 start() 的当前范围内

       package mypackage;
      
      import org.openqa.selenium.By;
      import org.openqa.selenium.WebDriver;
      import org.openqa.selenium.chrome.ChromeDriver;
      import org.openqa.selenium.firefox.FirefoxDriver;
      
      
      public class myclass {
      
          public WebDriver driver;
          public static void main(String[] args) {
              myclass dr= new myclass();
              dr.start();
              dr.select();
          }
      
          public void start(){
      
              driver= new FirefoxDriver();
              driver.get("https://www.google.co.in/");
          }
      
          public void select(){
              driver.findElement(By.linkText("Gmail")).click();
          }
      
      }
      

      【讨论】:

        猜你喜欢
        • 2021-07-05
        • 2013-11-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-24
        • 2012-12-09
        • 2018-10-15
        • 2014-08-30
        相关资源
        最近更新 更多