【问题标题】:NullPointer exception in TestNG while run test using xml使用 xml 运行测试时 TestNG 中的 NullPointer 异常
【发布时间】:2015-10-05 08:05:58
【问题描述】:

尝试在 Eclipse 中使用 TESTNG 框架自动化我的测试。 在项目中,我使用一个数据包 iEDGE 并将所有测试方法写入名为 eLogin 的单个类中。 但是当我尝试执行代码时,它会显示 nullPointer 异常。 以下是我用来运行测试用例的示例代码和 xml 设置。

谁能帮我解决我的问题。

Package com.iEDGE;
public class eLogIn {
private WebDriver driver;
private String baseUrl;
private boolean acceptNextAlert = true;
private StringBuffer verificationErrors = new StringBuffer();     

@Parameters ( { "platform", "browser", "ver" } )
@BeforeMethod (alwaysRun=true )
public void setUp(@Optional String platform  , @Optional String  browser   , @Optional String version     ) throws Exception {
baseUrl = "Gmail URL";              
DesiredCapabilities mCapability = new DesiredCapabilities();        

if (platform.equalsIgnoreCase("WINDOWS")){
    mCapability.setPlatform(org.openqa.selenium.Platform.WINDOWS);
}

if (browser.equalsIgnoreCase("Firefox")) {
mCapability = DesiredCapabilities.firefox();
mCapability.setVersion("40");           
}

driver = new RemoteWebDriver(new URL(baseUrl), mCapability);            
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.MILLISECONDS);           
driver.get(baseUrl);       
driver.findElement(By.cssSelector("input[name=username]")).clear();
driver.findElement(By.cssSelector("input[name=username]")).sendKeys("username");
driver.findElement(By.cssSelector("input[name=password]")).clear();
driver.findElement(By.cssSelector("input[name=password]")).sendKeys("password");
driver.findElement(By.id("button-1015-btnInnerEl")).click();
}
//OTEHR TEST METHODS ....
}     

TESTSuite.xml Settings

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite guice-stage="DEVELOPMENT" name="Default suite">
<test verbose="2" name="Default test">                  
<parameter name="platform" value="Windows"/>
    <parameter name="browser" value="Firefox"/>
    <parameter name="ver" value="40.0.3"/>                      
<classes>
  <class name="com.iEDGE.eLogIn"/>
</classes>
</test> <!-- Default test -->
</suite> <!-- Default suite -->

【问题讨论】:

标签: java xml eclipse selenium-webdriver testng


【解决方案1】:

由于您的所有参数都使用@Optional 注释,因此您必须在调用它们的方法之前检查它们是否为空。因此,例如,您必须执行以下操作:

if(platform != null){
  if (platform.equalsIgnoreCase("WINDOWS")){
    mCapability.setPlatform(org.openqa.selenium.Platform.WINDOWS);
  }
}

对所有涉及这些可选参数的指令执行此操作。

【讨论】:

    【解决方案2】:

    您将错误的 URL 传递到“ RemoteWebDriver(new URL(baseUrl), mCapability); ” 您应该传递 selenium 服务器 url,如下所示:

    new RemoteWebDriver( new URL("http://localhost:4444/wd/hub"), 
                                mCapability);
    

    更多详情请关注: seleniumHq

    如果您有任何问题,请告诉我

    谢谢 萨迪克

    【讨论】:

      【解决方案3】:

      您正在初始化错误的 Base url。

      应该是

      baseUrl = "http://127.0.0.1:4888/wd/hub";
      

      您必须提及本地主机中使用的传输协议。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多