1

私はSeleniumRCを使用しています。

私はデータを手動でセレンに提供しています。以下のように

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

しかし、私の疑問は、データを動的に取得する方法はありますか?ここで私は自分の名前を直接selenium.type();

テキストファイルやExcelファイルなどの他の場所からユーザー名とパスワードを取得する方法はありますか?

何か助けはありますか?

4

1 に答える 1

1

簡単な答え-はい。

より長い答え-あなたはそれをプログラムする必要があります。したがって、Selenium IDEを使用することはできませんが、SeleniumWebdriverを使用することはできます。私はこれを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人だけなので、すばやく汚いアプローチで行います。

 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)テストでは私はこのようなものを持っています

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

上記のコードは

  1. 既知のすべてのユーザーをUserPoolに追加します
  2. プールから1人の無料ユーザーを取得します
  3. ユーザー名とパスワードでアプリにログインします

私の場合、それは本当に迅速で汚いアプローチですが、ファイルにユーザーのリストを作成し、fileReaderなどを使用してそれらをUserPoolにロードすることができます。あなたがこれをどのように行うことができるかについてあなたにアイデアを与えるだけです;)

于 2012-04-05T11:48:53.207 に答える