Я пытаюсь автоматизировать сценарий с помощью Maps в Cucumber DataTable, используя несколько тестовых данных. В этом тесте мы дважды передадим имя пользователя и пароль на шаг теста. Таким образом, наш тест должен ввести имя пользователя и пароль один раз, нажать кнопку «Войти» и повторить те же шаги еще раз.
Я пытался использовать цикл for, чтобы повторить тест с использованием коллекции Карт.
1. Я получаю сообщение об ошибке «Несоответствие типов»: невозможно преобразовать тип элемента Map<Object,Object> to Map<String,String>
2. Когда я конвертирую его в Map<Object, Object>
, я получаю еще одну ошибку, в которой говорится, что метод sendKeys (CharSequence ...) в типе WebElement не применим для аргументов (Object)
Feature File Scenario
Scenario: Successful Login with Valid Credentials
Given User is on Home Page
When User Navigate to LogIn Page
And User enters Credentials to LogIn
| Username | Password |
| testuser_1 | Test@153 |
| testuser_2 | Test@154 |
Then Message displayed Login Successfully
Step Definition
//Maps in Data Tables with Multiple Test Data
@Then("^user enters Credentials in LogIn$")
public void user_enters_username_and_password(DataTable userCredentials) throws Throwable {
//Write the code to handle Data Table
for (Map<String, String> data : userCredentials.asMaps(String.class, String.class) ) {
driver.findElement(By.xpath("//input[@type='text']")).sendKeys(data.get("username"));
driver.findElement(By.name("password")).sendKeys(data.get("password"));
}
}
Ожидается - преобразовать тип элемента Map в Map
Actual - Несоответствие типов: невозможно преобразовать тип элемента Map в Map