2012-04-05 13 views
1

私はSelenium RCで作業しています。セレンを動的値で使用する

私は

selenium.type("id=username","myName"); 
selenium.type("id=password","myPassword"); 
selenium.click("id=login"); 

の下selenium.Likeに手動でデータを与えている。しかし、私の疑問は、動的にデータを取得する方法はありますか?ここで私の名前を直接selenium.type();

に入力しています。テキストファイルやExcelファイルのような他の場所からユーザー名とパスワードを取得する方法はありますか?

助けが必要ですか?

+0

純粋なセレンを使用していますか、プログラミングドライバを使用しているAPIをウェブドライバとして使用していますか?例えば(java、python、...) – devsnd

+0

私はselenium Remote Controlを使用しています。 –

答えて

1

短答 - はい。

長い回答 - プログラムする必要があります。したがって、Selenium IDEを使用することはできませんが、Selenium Webdriverを使用することはできます。私はJavaでこれをやっているので、私はあなたに私のコードの少しスニペットを投稿します、どうすればいいですか?

1)私は、ユーザー情報を保持するための特別なJavaクラスがあります。

public class EUAUser { 

    private String username; 
    private String password; 
    private boolean isUsed 

    public EUAUser(String uname, String pwd){ 
    this.username = uname; 
    this.password = pwd; 
    isUsed = false; 
    } 

    public String getPassword(){ 
    return password; 
    } 

public String getUsername(){ 
    return username; 
} 

public void lockUser(){ 
    isUsed = true; 
} 
} 

2)それから私はUserPoolは、すべてのユーザーを保持する必要があります。これまでのところ、私は唯一の5人の異なるユーザを必要とするので、私は、拙速なアプローチでそれを行う:私はこの

UserPool pool = new UserPool(); 
EUAUser user = pool.getNextUser(); 
selenium.type("id=username", user.getUserName()); 
selenium.type("id=password", user.getPassword()); 
selenium.click("id=login"); 

のようなものを持っているテストで

public class UserPool { 
private List<EUAUser> userList = new ArrayList<EUAUser>(); 

public UserPool(){ 

      userList.add(new EUAUser("firstUser","a")); 
      userList.add(new EUAUser("MyUsername", "a")); 
      userList.add(new EUAUser("TestUser", "a")); 
      userList.add(new EUAUser("TSTUser2", "a")); 

     } 

    public EUAUser getNextUser() throws RuntimeException { 
    for(EUAUser user: userList){   
      if (!user.isUsed()){ 
       user.lockUser(); 
       return user;    
     } 
    } 
    throw new RuntimeException("No free user found."); 
} 

3)上記のコードは

    を行います
  1. プール
  2. ログから1人の自由なユーザーを盗んUserPool
  3. にすべての既知のユーザーを追加します。あなたのユーザー名とパスワードの下で彼のアプリに私の場合は

私の場合は、本当に迅速かつ汚いアプローチですが、ファイルのユーザーのリストを持つことができますし、UserReaderを使用してUserReaderまたは何かを使用して読み込みます。

+0

私は自分のプロジェクトにクラスファイルを含めて、public class EUAUser {}とpublic class UserPool {}(上で示した)のコードをコピーしました。私はUserpoolプール=新しいUserPool()を作成することができません。私のセレンクラスでは(私はセレンのタイプを書いている場所で意味する) –

関連する問題