В настоящее время я создаю автоматические тесты для формы заявки, в которой я использую селен в сочетании со Specflow.
В моем сценарии Specflow у меня есть сценарий с несколькими примерами, которые я хочу использовать. У меня нет проблем с заполнением простых текстовых полей значениями из примера в схеме сценария, но я не могу получить селен, чтобы выбрать из раскрывающегося списка тот же элемент, что и у меня в схеме сценария specflow.
Шаг схемы сценария Specflow
Пример данных схемы сценария Specflow
Отправка данных из примера
Поиск и заполнение текстового поля
Как бы я продублировал это, но вместо того, чтобы заполнять текстовое поле, я хочу выбрать элемент в раскрывающемся списке, который совпадает со значением в схеме сценария specflow?
В настоящее время у меня есть созданный шаг и пример, но я не знаю, как правильно отправить данные, поймать и щелкнуть нужный элемент в раскрывающемся списке
Шаг схемы сценария Specflow для выпадающего списка
Пример данных схемы сценария Specflow для выпадающих элементов
РЕДАКТИРОВАТЬ 1:
Текущий код, который я пробовал для страницы слоя и шагов
Успешно щелкает раскрывающийся список, но не выбирает то же значение, что и в наброске элемента
public string MaritalStatus
{
set
{
_driver.FindElement(By.Id("mainApplicant.maritalStatus")).Click();
_driver.FindElement(By.XPath("//ul[@class='dropdown-menu show']//li[@role='presentation']//a[@class='dropdown-item']")).SendKeys(value);
}
}
[Then(@"I choose value (.*) in dropdown MainApplicantMaritalStatus and Check Value")]
public void ThenIChooseValueInDropdownMainApplicantMaritalStatusAndCheckValue(string value)
{
_cashLoanPage.MaritalStatus = value;
}
Успешно щелкает раскрывающийся список, но выбирает только первый элемент в раскрывающемся списке
public void MaritalStatus1()
{
_driver.FindElement(By.Id("mainApplicant.maritalStatus")).Click();
_driver.FindElement(By.XPath("//ul[@class='dropdown-menu show']//li[@role='presentation']//a[@class='dropdown-item']")).Click();
}
[Then(@"I choose value (.*) in dropdown MainApplicantMaritalStatus and Check Value")]
public void ThenIChooseValueInDropdownMainApplicantMaritalStatusAndCheckValue1(string x)
{
_cashLoanPage.MaritalStatus1();
}
РЕДАКТИРОВАТЬ 2:
С помощью Dazed этот код работает как задумано, если кто-нибудь когда-нибудь сталкивается с подобной проблемой
public void MaritalStatus(string value)
{
_driver.FindElement(By.Id("mainApplicant.maritalStatus")).Click();
_driver.FindElement(By.XPath(string.Format("//ul[@class='dropdown-menu show']//li[@role='presentation']//a[text()='{0}']", value))).Click();
}