2012-04-05 4 views
1

Я работаю с Selenium RC.Использование селена с динамическими значениями

Я даю данные вручную selenium.Like ниже

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

Но, мое сомнение, есть ли способ, чтобы получить данные динамически? Здесь я даю свое имя прямо в selenium.type();

Есть ли способ получить имя пользователя и пароль из другого места, например, текстового файла или файла excel?

Любая помощь?

+0

Используете ли вы чистую селену или используете API, который использует любой язык программирования в качестве драйвера webdriver? например (java, python, ...) – devsnd

+0

Я использую дистанционное управление селена. –

ответ

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. Получить один бесплатный пользователь из бассейна
  3. log с ним в приложение под именем пользователя и паролем

В моем случае это очень быстрый и грязный подход, но вы можете иметь список пользователей в файле и загружать их в UserPool с помощью fileReader или что-то в этом роде. Просто дайте вам понять, как вы можете это сделать;)

+0

Я включил файл класса в свой проект и скопировал код публичного класса EUAUser {} и публичный класс UserPool {} (который указан выше). но я не могу создать пул Userpool = новый UserPool(); в моем классе селена (я имею в виду то место, где я пишу selenium.type) –

Смежные вопросы