2016-08-04 15 views
0

セレンでテストケースを実行しようとすると「packageName.pageNameクラスをインスタンス化できません」というメッセージが表示されます。私はたくさん試しましたが、私が間違っている場所を見つけられませんでした。class packageName.pageNameをインスタンス化できません

は、以下の私のログインページ

package detailsPkg_user; 

public class Login { 
    public static WebDriver driver; 
    String username = "userName"; 
    String password = "passWord"; 
    String baseurl = "http://mybusiness.com/login.aspx"; 
    WebDriverWait wait = new WebDriverWait(driver, 10); // 10 seconds 


public class Details { 
    @Test(priority = 0) 
    public void loginpage() { 

     System.setProperty("webdriver.chrome.driver","D:\\From H\\Selenium Package\\ChromeDriver\\chromedriver_win32\\chromedriver.exe"); 
     DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
     capabilities.setCapability("chrome.switches", Arrays.asList("--incognito")); 
     ChromeOptions options = new ChromeOptions(); 
     options.addArguments("--test-type"); 
     options.addArguments("--disable-extensions"); 
     capabilities.setCapability("chrome.binary","D:\\From H\\Selenium Package\\ChromeDriver\\chromedriver_win32\\chromedriver.exe"); 
     capabilities.setCapability(ChromeOptions.CAPABILITY, options); 

     driver = new ChromeDriver(capabilities); 
     driver.manage().deleteAllCookies(); 
     driver.manage().window().maximize(); 
     driver.get(baseurl); 


     WebElement username = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("UserName"))); 
     username.sendKeys(userName); 

     WebElement password = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("PassWord"))); 
     password.sendKeys(passWord); 

     WebElement button = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("ButtonClick"))); 
     button.click(); 

    } 

    // Selecting a date from date picker 
    @Test(priority = 1) 
    public void RecordSearch() { 
     WebElement calendar = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("CalendarId"))); 
     calendar.click(); 


     WebElement month = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("XPath"))); 
     month.click(); 


     WebElement day = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("XPath"))); 
     day.click(); 


     WebElement submit = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("Submit"))); 
     submit.click(); 


    } 

     driver.close(); 
} 

であり、以下に、私はプロジェクトを実行しようとしていますdetailSearchページのコード

package detailsPkg_user; 


import org.testng.annotations.Test; 
import java.util.Arrays; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.chrome.ChromeDriver; 
import org.openqa.selenium.chrome.ChromeOptions; 
import org.openqa.selenium.remote.DesiredCapabilities; 
import org.openqa.selenium.support.ui.ExpectedConditions; 
import org.openqa.selenium.JavascriptExecutor; 



public class detailSearch extends Login { 

    @Test(priority = 2) 
    public void loginpageDetail() { 

     System.setProperty("webdriver.chrome.driver","D:\\From H\\Selenium Package\\ChromeDriver\\chromedriver_win32\\chromedriver.exe"); 
     DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
     capabilities.setCapability("chrome.switches", Arrays.asList("--incognito")); 
     ChromeOptions options = new ChromeOptions(); 
     options.addArguments("--test-type"); 
     options.addArguments("--disable-extensions"); 
     capabilities.setCapability("chrome.binary","D:\\From H\\Selenium Package\\ChromeDriver\\chromedriver_win32\\chromedriver.exe"); 
     capabilities.setCapability(ChromeOptions.CAPABILITY, options); 

     driver = new ChromeDriver(capabilities); 
     driver.manage().deleteAllCookies(); 
     driver.manage().window().maximize(); 
     driver.get(baseurl); 



     WebElement username = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("UserName"))); 
     username.sendKeys(userName); 

     WebElement password = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("Password"))); 
     password.sendKeys(passWord); 

     WebElement button = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("ButtonClick"))); 
     button.click(); 
    } 

    // Selecting and clicking DetailSearch menu 
    @Test(priority = 3) 
    public void detailSelect() {  
     WebElement detailMenu = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("XPath"))); 
     detailMenu.click(); 



     // Datepicker of "From" calendar 
     WebElement datepickerFrom = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("calendarId01"))); 
     datepickerFrom.click(); 


     WebElement monthPreviousFrom = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("leftarrow_calendar_NP']/img"))); 
     monthPreviousFrom.click(); 


     WebElement dayFirst = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("XPath"))); 
     dayFirst.click(); 


     // Datepicker of "To" calendar 
     WebElement datepickerTo = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("calendarId02"))); 
     datepickerTo.click(); 


     WebElement monthPreviousTo = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("leftarrow_calendar_NP']/img"))); 
     monthPreviousTo.click(); 


     WebElement monthLast = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("XPath"))); 
     monthLast.click(); 

    } 

     // Click "Submit" 
     WebElement submit = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("ctl00_contentMiddle_btnSearch"))); 
     submit.click(); 


     WebElement logout = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("XPath"))); 
     logout.click(); 

     driver.close(); 
    } 

} 

です。コンソールで次のエラーが表示されます。

org.testng.TestNGException: 
Cannot instantiate class detailsPkg_user.detailSearch 
    at org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:40) 
    at org.testng.internal.ClassHelper.createInstance1(ClassHelper.java:382) 
    at org.testng.internal.ClassHelper.createInstance(ClassHelper.java:295) 
    at org.testng.internal.ClassImpl.getDefaultInstance(ClassImpl.java:118) 
    at org.testng.internal.ClassImpl.getInstances(ClassImpl.java:183) 
    at org.testng.internal.TestNGClassFinder.<init>(TestNGClassFinder.java:128) 
    at org.testng.TestRunner.initMethods(TestRunner.java:416) 
    at org.testng.TestRunner.init(TestRunner.java:242) 
    at org.testng.TestRunner.init(TestRunner.java:212) 
    at org.testng.TestRunner.<init>(TestRunner.java:166) 
    at org.testng.remote.support.RemoteTestNG6_9_7$1.newTestRunner(RemoteTestNG6_9_7.java:26) 
    at org.testng.remote.support.RemoteTestNG6_9_7$DelegatingTestRunnerFactory.newTestRunner(RemoteTestNG6_9_7.java:59) 
    at org.testng.SuiteRunner$ProxyTestRunnerFactory.newTestRunner(SuiteRunner.java:587) 
    at org.testng.SuiteRunner.init(SuiteRunner.java:161) 
    at org.testng.SuiteRunner.<init>(SuiteRunner.java:114) 
    at org.testng.TestNG.createSuiteRunner(TestNG.java:1290) 
    at org.testng.TestNG.createSuiteRunners(TestNG.java:1277) 
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1131) 
    at org.testng.TestNG.run(TestNG.java:1048) 
    at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:126) 
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:152) 
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:57)Caused by: java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Unknown Source) 
    at org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:29) 
    ... 21 more Caused by: java.lang.NullPointerException 
    at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:212) 
    at org.openqa.selenium.support.ui.FluentWait.<init>(FluentWait.java:102) 
    at org.openqa.selenium.support.ui.WebDriverWait.<init>(WebDriverWait.java:71) 
    at org.openqa.selenium.support.ui.WebDriverWait.<init>(WebDriverWait.java:45) 
    at detailsPkg_user.Login.<init>(Login.java:25) 
    at detailsPkg_user.detailSearch.<init>(CDRSearch.java:21) 
    ... 26 more 
+0

「Login.java」の25行目は何ですか? –

+0

@ chiastic-security ...それは空白行です。 "WebDriverWait wait = new WebDriverWait(driver、10); // 10秒"の次の行だけです – Arvind

+0

これは25行目のように見えないコードがいくつか欠けていますか? – Josh

答えて

1

これは、メソッドにドライバをインスタンス化したためです。メソッドからインスタンス化しようとすると、そのために@BeforeSuiteを使用することができます。この行に問題がありますWebDriverWait wait = new WebDriverWait(driver, 10);。ここでは、ドライバーが後でインスタンス化されるため、ヌルドライバーで待機インスタンスを作成しています。

私はよく分かりませんが、なぜ人々は複雑なコードを書くのですか?あなたは多くのcomplex.Thisはあなたの問題を解決するだろうということをせずに、同じ達成している可能性があり:

import org.testng.annotations.BeforeSuite; 
import org.testng.annotations.Test; 
import java.util.Arrays; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.chrome.ChromeDriver; 
import org.openqa.selenium.chrome.ChromeOptions; 
import org.openqa.selenium.remote.DesiredCapabilities; 
import org.openqa.selenium.support.ui.ExpectedConditions; 

public class DetailSearch extends Login { 

    @BeforeSuite 
    public void instantiateDriver() { 
     System.setProperty("webdriver.chrome.driver","D:\\From H\\Selenium Package\\ChromeDriver\\chromedriver_win32\\chromedriver.exe"); 
     DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
     capabilities.setCapability("chrome.switches", Arrays.asList("--incognito")); 
     ChromeOptions options = new ChromeOptions(); 
     options.addArguments("--test-type"); 
     options.addArguments("--disable-extensions"); 
     capabilities.setCapability("chrome.binary","D:\\From H\\Selenium Package\\ChromeDriver\\chromedriver_win32\\chromedriver.exe"); 
     capabilities.setCapability(ChromeOptions.CAPABILITY, options); 

     driver = new ChromeDriver(capabilities); 
     driver.manage().deleteAllCookies(); 
     driver.manage().window().maximize(); 
     driver.get(baseurl); 
    } 

    @Test(priority = 2) 
    public void loginpageDetail() { 



     WebElement username = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("UserName"))); 
     username.sendKeys("userName"); 

     WebElement password = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("Password"))); 
     password.sendKeys("passWord"); 

     WebElement button = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("ButtonClick"))); 
     button.click(); 
    } 

    // Selecting and clicking DetailSearch menu 
    @Test(priority = 3) 
    public void detailSelect() {  
     WebElement detailMenu = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("XPath"))); 
     detailMenu.click(); 



     // Datepicker of "From" calendar 
     WebElement datepickerFrom = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("calendarId01"))); 
     datepickerFrom.click(); 


     WebElement monthPreviousFrom = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("leftarrow_calendar_NP']/img"))); 
     monthPreviousFrom.click(); 


     WebElement dayFirst = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("XPath"))); 
     dayFirst.click(); 


     // Datepicker of "To" calendar 
     WebElement datepickerTo = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("calendarId02"))); 
     datepickerTo.click(); 


     WebElement monthPreviousTo = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("leftarrow_calendar_NP']/img"))); 
     monthPreviousTo.click(); 


     WebElement monthLast = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("XPath"))); 
     monthLast.click(); 

    } 

     // Click "Submit" 
     WebElement submit = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("ctl00_contentMiddle_btnSearch"))); 



     WebElement logout = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("XPath"))); 
    } 


import java.util.Arrays; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.chrome.ChromeDriver; 
import org.openqa.selenium.chrome.ChromeOptions; 
import org.openqa.selenium.remote.DesiredCapabilities; 
import org.openqa.selenium.support.ui.ExpectedConditions; 
import org.openqa.selenium.support.ui.WebDriverWait; 
import org.testng.annotations.BeforeSuite; 
import org.testng.annotations.Test; 

public class Login { 
    public static WebDriver driver; 
    String username = "userName"; 
    String password = "passWord"; 
    String baseurl = "http://mybusiness.com/login.aspx"; 
    WebDriverWait wait; 


public class Details { 
    @BeforeSuite 
    public void instantiateDriver() { 
     System.setProperty("webdriver.chrome.driver","D:\\From H\\Selenium Package\\ChromeDriver\\chromedriver_win32\\chromedriver.exe"); 
     DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
     capabilities.setCapability("chrome.switches", Arrays.asList("--incognito")); 
     ChromeOptions options = new ChromeOptions(); 
     options.addArguments("--test-type"); 
     options.addArguments("--disable-extensions"); 
     capabilities.setCapability("chrome.binary","D:\\From H\\Selenium Package\\ChromeDriver\\chromedriver_win32\\chromedriver.exe"); 
     capabilities.setCapability(ChromeOptions.CAPABILITY, options); 

     driver = new ChromeDriver(capabilities); 
     driver.manage().deleteAllCookies(); 
     driver.manage().window().maximize(); 

     wait = new WebDriverWait(driver, 10); // 10 seconds 
    } 

    @Test(priority = 0) 
    public void loginpage() { 
     driver.get(baseurl); 


     WebElement username = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("UserName"))); 
     username.sendKeys("userName"); 

     WebElement password = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("PassWord"))); 
     password.sendKeys("passWord"); 

     WebElement button = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("ButtonClick"))); 
     button.click(); 

    } 

    // Selecting a date from date picker 
    @Test(priority = 1) 
    public void RecordSearch() { 
     WebElement calendar = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("CalendarId"))); 
     calendar.click(); 


     WebElement month = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("XPath"))); 
     month.click(); 


     WebElement day = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("XPath"))); 
     day.click(); 


     WebElement submit = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("Submit"))); 
     submit.click(); 


    } 

} 
} 
+0

いくつかのエラーが発生したので、私はいくつかのメソッドを削除しました。 –

+0

...私はあなたの解決策を試しました。しかし、それは動作していません。 3つのブラウザインスタンスを開きますが、ユーザー名とパスワードは入力していません。 – Arvind

+1

コードの先頭にブレークポイントを置き、3つの異なるブラウザインスタンスが起動されている場所を指し示して、それらを修正/削除します。 – JeffC

0

を使用すると、ドライバファイルを保管フォルダ構造が/ JREファイルが変更されたりしていないかどうかを確認してください。フォルダ名の小さな変更であっても、この問題の原因となります。 変更された場合 - そのパスを環境変数として更新します。

+1

それは問題ではありません。この問題は、プログラムの論理にあった – Arvind

関連する問題