2015-03-18 3 views
0

Вот мой код . Не могу понять, почему я получаю исключение.java.lang.NullPointerException at net.sf.sahi.config.Configuration.getUserProperty

import net.sf.sahi.client.Browser; 
import org.testng.Assert; 
import org.testng.annotations.Test; 


public class browser { 


@Test 
public void function2(){ 
    System.out.println("Starting"); 
    String browserName = "firefox"; // default values are "ie", "firefox", "safari", "chrome", "opera" - specified in userdata/config/browser_types.xml 
    Browser browser = new Browser(browserName); 
    browser.open(); 
    browser.navigateTo("http://www.google.com"); 
    browser.textbox("q").setValue("sahi forums"); 
    browser.submit("Google Search").click(); 
    browser.link("Sahi - Web Automation and Test Tool").click(); 
    browser.link("Login").click(); 
    Assert.assertTrue(browser.textbox("req_username").exists()); 

    browser.close(); 

    System.out.println("Ending"); 
} 
} 


import org.testng.annotations.Test; 

public class trial { 

@Test 
public void function2(){ 
    browser.function1(); 
    } 
} 

Мой pom.xml выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?> 
    <project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
    http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 

<groupId>rashmi</groupId> 
<artifactId>sahi</artifactId> 
<version>1.0-SNAPSHOT</version> 


    <repositories> 
     <repository> 
      <id>clojars</id> 
      <name>Clojars Repository</name> 
      <url>http://clojars.org/repo</url> 
     </repository> 
    </repositories> 
    <dependencies> 

     <dependency> 
      <groupId>sahi</groupId> 
      <artifactId>sahi</artifactId> 
      <version>3.5</version> 
     </dependency> 

     <dependency> 
     <groupId>org.testng</groupId> 
     <artifactId>testng</artifactId> 
     <version>6.8.8</version> 
    </dependency> 
</dependencies> 

</project> 

Когда я правой кнопкой мыши на мой тест и запустить его на исключение я получаю выглядит следующим образом:

java.lang.NullPointerException 
      at net.sf.sahi.config.Configuration.getUserProperty(Configuration.java:694) 
at net.sf.sahi.config.Configuration.getCommonDomain(Configuration.java:780) 
at net.sf.sahi.client.Browser.openURL(Browser.java:265) 
at net.sf.sahi.client.Browser.open(Browser.java:241) 
at browser.function1(browser.java:15) 
at trial.function2(trial.java:12) 

Может кто-нибудь, пожалуйста, помогите мне выяснить, почему я получаю исключение?

+0

Вы можете вставить функцию1() в файл браузера и пробный файл. –

+0

Нет функции1. Я просто случайно назвал finction2() – Rashmi

+0

Ваша ошибка говорит 'в browser.function1 (browser.java:15) at trial.function2 (trial.java:12)' , что означает, что он должен быть там. –

ответ

3

Как показано в javadoc Browser, перед open должно быть выполнено следующее.

String sahiBasePath = "D:\\path\\to\\sahi_dir"; 
Sting userDataDirectory = "D:\\path\\to\\userdata_dir"; 

net.sf.sahi.config.Configuration.initJava(sahiBasePath, userDataDirectory); 
+0

Спасибо за ответ. Я добавил в свой код следующие строки. Строка sahiBasePath = "/ workspace/Sahi_1/sahi"; Строка userDataDirectory = "/ worspace/Sahi_1/sahi/userdata"; net.sf.sahi.config.Configuration.initJava (sahiBasePath, userDataDirectory); – Rashmi

+0

Начиная java.io.FileNotFoundException: /workspace/Sahi_1/config/sahi.properties (Нет такого файла или каталога) \t на java.io.FileInputStream.open (Native Method) \t на java.io.FileInputStream. (FileInputStream.java:138) \t at java.io.FileInputStream. (FileInputStream.java:93) \t на net.sf.sahi.config.Configuration.loadProperties (Configuration.java:121) \t в net.sf.sahi.config.Configuration.init (Configuration.java:95) \t в net.sf.sahi.config.Configuration.initJava (Configuration.java:145) \t в browser.function1 (browser.java:17) \t в trial.function2 (trial.java:12) – Rashmi

+0

Sahi свойств файл = /workspace/Sahi_1/config/sahi.properties \t в org.testng.internal.Invoker.invokeTestMethod (Invoker.java:901) – Rashmi