-2

Итак, у меня есть тест, где я заполняю форму. Я хочу запустить этот тест несколько раз и каждый раз использовать разные входные значения, например, другое имя. Думаю, я могу использовать какой-то список слов для этого? Но я точно не знаю, как это сделать.Selenium Webdriver - Как я могу рандомизировать тест для ввода новых данных каждый раз?

 .completePersonalAddressDetails("04/06/2017","NONE","Mr","Ohaye", 
         "04/05/1985","Tester","British","123 boombastic avenue","G412LQ") 


public NewStartPage completePersonalAddressDetails(String startDate, String NINumber, 
                 String title, String Name, String DOB, String LastName, 
                 String nationality, String addressLine, String postcode) { 
     helper.switchToMainFrame(); 

     startDateInput.sendKeys(startDate); 
     helper.sleep(); 
     payrollCompanyLookUp.click(); 
     helper.switchToLookUpFrame(); 
     firstPayrollCompany.click(); 
     helper.switchToMainFrame(); 
     payrollCompanySelectButton.click(); 

     niNumberInput.clear(); 
     niNumberInput.sendKeys(NINumber); 

     Select selectTitle = new Select(titleSelect); 
     selectTitle.selectByValue(title); 

     firstNameInput.sendKeys(Name); 
     maritalStatusInput.click(); 
     helper.switchToLookUpFrame(); 
     helper.sleep(); 
     maritalStatusDivorced.click(); 
     helper.switchToMainFrame(); 
     maritalStatusSelectButton.click(); 

     DOBInput.sendKeys(DOB); 

     lastNameInput.sendKeys(LastName); 

     Select selectNationality = new Select(nationalitySelect); 
     selectNationality.selectByVisibleText(nationality); 

     genderInput.click(); 
     helper.switchToLookUpFrame(); 


     helper.sleep(); 
     genderMale.click(); 
     helper.switchToMainFrame(); 
     genderSelect.click(); 

     helper.sleep(); 
     addressLineInput.sendKeys(addressLine); 
     postcodeInput.sendKeys(postcode); 
     driver.switchTo().defaultContent(); 
     return PageFactory.initElements(driver, NewStartPage.class); 

    } 
+0

ЕСЛИ ВЫ голосуете, пожалуйста, предоставьте комментарий. В противном случае я не буду знать, почему меня проголосовали, и я не могу улучшить себя и, в свою очередь, помогать сообществу, поскольку другие помогли мне. То, что вы думаете, это глупый вопрос, по-прежнему следует дать конструктивную обратную связь, чтобы побудить людей продолжать учиться. – OhAye

ответ

0

Вы можете создать метод генерации случайного текста. См шахты ниже

public String generateRandomName(int length) { 
    char[] chars =abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" 
      .toCharArray(); 
    StringBuilder sb = new StringBuilder(); 
    Random random = new Random(); 
    for (int i = 0; i < length; i++) { 
     char c = chars[random.nextInt(chars.length)]; 
     sb.append(c); 
    } 
    String randomString = sb.toString(); 
    return randomString; 
} 

Затем, когда вы хотите, чтобы заполнить форму, которую вы можете сделать следующее:

String firstName = ClassName.generateRandomName(9); // 9 Characters long 
driver.findElement(By.xpath("Your xpath")).sendKeys(firstName); 

Вы можете вызвать этот метод, где вы хотите, чтобы вызвать случайную строку текста. Надеюсь, поможет.

+0

Это действительно так, спасибо. Если бы вы хотели сделать список имен, вы бы просто создали массив строк и затем выбрали один случайным образом? – OhAye

+0

Да, вы могли бы просто создать массив строк и добавить каждую строку в массив, а затем выбрать один случайным образом. На выбор один случайный ответ был дан здесь, чтобы эта ссылка также могла помочь вам. http://stackoverflow.com/questions/8065532/how-to-randomly-pick-an-element-from-an-array – Moser

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