2016-10-24 6 views
0

なぜ、私は2つのFirefoxブラウザを開いているのか分かりません。ある人が以下のコードで何が間違っているのか教えてください。私はキュウリが新しく、私はページオブジェクトモデルでキュウリのpocを開発しようとしています。複数のブラウザウィンドウがキュウリで自動的に開きます

フィーチャーファイル:

Scenario: Smoke test for application 
     Given I am on home page 

ステップDefinationファイル:

public class HomePageSteps { 

CustomerDetails customerDetails; 

HomePage homePage=new HomePage(); 

public HomePageSteps(CustomerDetails customerDetails){ 
    this.customerDetails=customerDetails; 
} 

@Before 
public void environmentSteup(){ 
    homePage.envSetup(); 
} 

@Given("^I am on home page$") 
public void i_am_on_home_page() throws Throwable { 
    homePage.openURL(); 
} 
} 

ステップ定義ファイルの実際の実装:(HomePage.java)

public class HomePage extends BasePage{ 

public void openURL() { 
    driver.get("https://applicationURL.aspx"); 
    System.out.println("I am on home page executed"); 
} 

public void envSetup() { 
    driver=new FirefoxDriver(); 
    driver.manage().window().maximize(); 
} 
} 

BasePage.java

public abstract class BasePage { 
protected WebDriver driver=new FirefoxDriver(); 
} 

CustomerDetails.java

public class CustomerDetails { 
private String mdn=null; 

private String Fname=null; 

private String Lname=null; 

public String getMdn() { 
    return mdn; 
} 

public void setMdn(String mdn) { 
    this.mdn = mdn; 
} 
} 

2つのFirefoxのブラウザが開かれます: まず、それは空白のブラウザを開きます。その後、別のブラウザを開き、このブラウザでアプリケーションURLを開きます。あなたは、ブラウザのウィンドウを開くには、2つの呼び出しを持っている

答えて

1

... envSetup()で一度サブクラスで

- protected WebDriver driver=new FirefoxDriver();

-

と初期設定にスーパークラスドライバ変数の宣言でdriver=new FirefoxDriver();

あなたはそれらの1つを削除する必要があります、スーパークラスのための必要はありません...これはあなたに空白のウィンドウを与えるものです

0

このページを参照してください。 envSetup()であなたのmaximize()コールは、あなたが思っているより多くのをやっているかもしれません

In selenium webdriver what is manage() [driver.manage()]

編集:

すでにそのオブジェクトにdriverフィールドをインスタンス化しているとして、あなたはまた、BasePagenew FirefoxDriver()外をインスタンス化する必要はありません。 。 BasePageを拡張するものは、そのdriverフィールドにアクセスできます。あなたがこれをやっているのは問題ではありません。そこにいる必要のない無関係のコードです。

関連する問題