2016-07-20 6 views
0

Selenium GridとJUnitフレームワークでJavaを使用して自動テストを作成していますが、ユーザー入力に問題が発生しました。だから私のコードは次のようになります。Javaユーザー入力のあるSeleniumグリッド

package com.example.tests; 

import com.thoughtworks.selenium.DefaultSelenium; 
import org.junit.After; 
import org.junit.Before; 
import org.junit.Test; 

import java.util.Scanner; 

import static org.junit.Assert.fail; 
import static org.testng.Assert.assertEquals; 
import static org.testng.Assert.assertTrue; 


public class test { 
    private DefaultSelenium selenium; 

    @Before 
    public void setUp() throws Exception { 
     selenium = new DefaultSelenium("localhost", 5555, "*googlechrome", "www.google.com"); 
     selenium.start(); 
    } 

    @Test 
    public void Test() throws Exception { 
    // some tests here 
    } 

    @After 
    public void tearDown() throws Exception { 
     selenium.stop(); 
    } 

私は、ユーザー入力を追加したいと思いますので、ときに彼のタイプ「Firefoxの」とき、例えば、ユーザタイプ「Google Chromeの」テストは、Google Chromeので始まります、テストでは、私が(例えば、セットアップ方法で)私のコードで

Scanner in = new Scanner(System.in); 
String web_browser = in.next(); 

somwhereを入れしようとしましたが、プログラムが起動したときに、私は、コンソールには何も入力することができないのFirefoxなどで開始します。誰もがこのための解決策を知っていますか?

+0

でそれらを設定することで、同じようにテストを起動することができますか?特定のタスクを自動化したいだけなら、単体テストを行う必要はなく、必要なタスクを実行するPOJOを作成し、実行するタスクに基づいてパラメータを与えるだけです。 – t0mppa

+0

@ t0mppaええ、私は別のブラウザと同じテストを並行して実行したいと思っています。 –

+0

私はまだ手動作業を中央に置くのが間違っていると思います。あなたはテストスイートを使って、何らかの方法で個人的にやりとりすることなく、複数のブラウザを立ち上げることができます。 – t0mppa

答えて

0

テストではSystem.inを扱いにくいです。

システムプロパティとしてドライバの設定を読むことをお勧めしますか?

String driver = System.getProperty("driver"); 
if (driver != null) { 
    //use that driver 
} 
else { 
    //use default driver 
} 

あなたは

mvn test -Ddriver=chrome 

か正確に手動で制御する必要がある自動テストをしたいと思うのはなぜあなたのIDE

関連する問題