在selenium Webdriver中执行TestNg.xml文件时显示java.lang.NullPointerException

时间:2014-04-03 10:26:10

标签: java xml selenium webdriver

我是Selenium WebDriver的新手。

PROG:

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 Null指针错误。

任何人都可以帮助我。

以下是Exeception获取:

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

谢谢&amp;此致

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

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)

3 个答案:

答案 0 :(得分:0)

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

XML应该是:

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

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

答案 1 :(得分:-1)

Classes标签和class标签应为大写。 我试过了,解决了。

答案 2 :(得分:-2)

请将<Classes>代码更改为<classes>,将<Class>更改为<class>

标签应为小写