質問: Javaでseleniumとjunitを使ったプログラムを作っていて実装の仕方に迷っています 以下のクラスがあります ■Junitのテストケース opeクラスのメソッドを呼び出している ■Commonクラス seleniumでよく使う機能などを定義しているクラス ■クラス 処理単位でcommonクラスのメソッドを呼び出しをしているクラス Commonクラス内で必ず使うクラスのインスタンスはどのように扱うのが一般的なのでしょうか WebDriverクラスやWebElemetクラスなど 1.Junitのテストケース内でインスタンスを作成してopeクラスのメソッドを呼び出すときに引数としてインスタンスを渡す クラス public void click(Webelement element,WebDriver driver){ 処理~ } opeクラス public void login(Webelement element,WebDriver driver){ click(element,driver); } Junitのテストケース Webelement element=new Webelement(); WebDriver driver =new WebDriver(); login(element,driver); 2.メソッドの引数を必要最低限のものにしてCommonクラスのメンバ変数としてインスタンスを作成する clsss Common{ Webelement element=new Webelement(); WebDriver driver =new WebDriver(); public void click(){ 処理~ } } javaでクラスを使うときに一般的な使い方は1と2どちらになるのでしょうか? よろしくお願いします。
回答: どちらかと言ったら1の方だと思いますが、 そもそも`WebElement`をフィールドにする必要ってあるでしょうか? `WebElement`は`WebDriver`を動かした結果として取得するもので、 基本的にローカル変数になると思うんですが。 下記リンクの記事がti001さんのやりたいことに近いんじゃないかと思いますが、いかがでしょうか。 Selenium WebDriverで遊ぶ - CLOVER