【问题标题】:java.lang.NullPointerException is displayed while executing TestNg.xml file in selenium Webdriver在 selenium Webdriver 中执行 TestNg.xml 文件时显示 java.lang.NullPointerException
【发布时间】:2014-04-03 10:26:09
【问题描述】:

我是 Selenium WebDriver 的新手。

程序:

import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class sample1 
{
    @BeforeMethod
    public void BeforeMethod()
    {
        System.out.println("This is Before Method");
    }
    @Test
    public void f1()
    {
        System.out.println("This is f1 method");
    }
    @Test
    public void f2()
    {
        System.out.println("This is f2 Method");
    }
}

TestNG XML 文件:

<suite name="s1">
    <test name="t1">
        <Classes>
            <Class name="sample1" />
            <methods>
                <include name= "f1" />
                <include name= "f2" />
            </methods
        </Classes>
    </test>
</suite>

执行上述xml文件时,显示Java空指针错误。

谁能帮帮我。

这是获取的异常:

org.testng.TestNGException: java.lang.NullPointerException at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:341) at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:88) at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204) at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175) Caused by: java.lang.NullPointerException at org.testng.xml.TestNGContentHandler.xmlMethod(TestNGContentHandler.java:456) at org.testng.xml.TestNGContentHandler.endElement(TestNGContentHandler.java:690) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknow n Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver .next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(Unknown Source) at javax.xml.parsers.SAXParser.parse(Unknown Source) at org.testng.xml.XMLParser.parse(XMLParser.java:39) at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:17) at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:10) at org.testng.xml.Parser.parse(Parser.java:168) at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:311) ... 3 more

感谢和问候

我已将标签名称中的大写字母更改为小写字母,然后出现以下异常:

org.testng.TestNGException: 
Cannot find class in classpath: ChangePage
    at org.testng.xml.XmlClass.loadClass(XmlClass.java:81)
    at org.testng.xml.XmlClass.init(XmlClass.java:73)
    at org.testng.xml.XmlClass.<init>(XmlClass.java:59)
    at org.testng.xml.TestNGContentHandler.startElement(TestNGContentHandler.java:543)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown     Source)
    at     com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(Unknown     Source)
    at     com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unkn    own Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(Unknown Source)
    at javax.xml.parsers.SAXParser.parse(Unknown Source)
    at org.testng.xml.XMLParser.parse(XMLParser.java:39)
    at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:17)
    at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:10)
    at org.testng.xml.Parser.parse(Parser.java:168)
    at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:311)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:88)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)

【问题讨论】:

  • 可以添加异常跟踪吗?
  • 您在&lt;/methods 之后缺少&gt;(但不确定是否相关)
  • 添加了异常日志。请看一看。
  • @MartinPrikryl '>' 在代码中添加了 '' 之后。打字错误。对不起...

标签: java xml selenium webdriver


【解决方案1】:

首先,将类名更改为正确的格式:Sample1,并确保文件名为Sample1.java

XML 应该是:

<suite name="s1">
    <test name="t1">
        <Classes>
            <Class name="Sample1" />
        </Classes>
    </test>
</suite>

TestNG 会自动检测测试方法,因为您对它们进行了注释:)。

【讨论】:

  • 结果:s1 运行的测试总数:0,失败:0,跳过:0 未显示异常。但没有执行任何方法。
  • 可能你的 testNG 配置有误。将第 2 章从 tutorialspoint.com/testng/testng_tutorial.pdf 更改为
  • 我已经从 Eclipse 安装了 TestNG。所以我没有设置“TESTING_HOME”环境变量。但在教程中,他们通过从 www.TestNg.org 下载手动安装它。我还需要设置“TESING_HOME”路径吗?如果是,TestNG 将安装在 eclipse 文件夹的哪个位置?注意:直接执行 TestNG prog 可以正常工作。只有执行 TestNG.xml 文件才会抛出异常。
  • 更新了我的问题。你能看一下吗。谢谢。
【解决方案2】:

类标签和类标签应该是大写的。 我试过了,解决了。

【讨论】:

    【解决方案3】:

    请将&lt;Classes&gt; 标签更改为&lt;classes&gt;,将&lt;Class&gt; 更改为&lt;class&gt;

    标签应为小写

    【讨论】:

      猜你喜欢
      • 2020-03-08
      • 2021-05-14
      • 2017-04-25
      • 2011-04-14
      • 1970-01-01
      • 1970-01-01
      • 2020-02-17
      • 2016-10-25
      • 2014-04-17
      相关资源
      最近更新 更多