2012-04-05 60 views
1

我正在与Selenium RC合作。使用硒与动态值

我手动给数据selenium.Like下面

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

但是,我怀疑是有没有什么办法来动态地获得数据?在这里我直接给我的名字selenium.type();

有什么办法从其他地方像textfile或excel文件检索用户名和密码?

任何帮助?

+0

你使用纯粹的selenese,或者你使用的API使用任何编程语言作为web驱动程序驱动程序?例如(java,python,...) – devsnd 2012-04-05 11:36:08

+0

我正在使用硒遥控器。 – 2012-06-01 09:09:31

回答

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个不同的用户,我这样做,通过快速和肮脏的方法:

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. Retreive一个免费用户从池中
  3. 日志就是他到下的用户名和密码,

应用在我的情况下,其真正的快速和肮脏的方法,但也可以让用户的列表中的文件和使用的FileReader或东西他们装入了userpool。只是给你想法你怎么可以这样做;)

+0

我在我的项目中加入了一个类文件,并复制了公共类EUAUser {}和公共类UserPool {}(上面给出)的代码。但我无法创建Userpool池=新的UserPool();在我的硒类(我的意思是在我写selenium.type的地方) – 2012-04-09 07:55:30