C# 如何从下拉列表中显示的字段中检查乘客详细信息?
我正在努力寻找一种方法,以便能够从输入栏中捕获乘客文本,然后使用它检查是否在下拉菜单中 下面是我目前关于检索乘客姓名的想法。每个乘客都有自己的名字和姓氏字段: 在页面交互页面中:C# 如何从下拉列表中显示的字段中检查乘客详细信息?,c#,selenium,C#,Selenium,我正在努力寻找一种方法,以便能够从输入栏中捕获乘客文本,然后使用它检查是否在下拉菜单中 下面是我目前关于检索乘客姓名的想法。每个乘客都有自己的名字和姓氏字段: 在页面交互页面中: public List<string> GetPassengerNames(By passengerNameType) { List<string> myList = new List<string>(); var myFields =
public List<string> GetPassengerNames(By passengerNameType)
{
List<string> myList = new List<string>();
var myFields = _driver.FindElements(passengerNameType);
foreach (var myField in myFields)
{
myList.Add(myField.Text);
}
return myList;
}
在步骤定义中:
public void ThisIsMyForenameTestStepMethod()
{
List<string> myList = GetPassengerNames(PassengerDetailsElements.ForenameField);
ScenarioContext.Current.Add("ForeNameList", myList);
}
public void ThisIsMySurnameTestStepMethod()
{
List<string> myList = GetPassengerNames(PassengerDetailsElements.SurnameField);
ScenarioContext.Current.Add("SurnameList", myList);
}
老实说,我想知道下一步该怎么做。我需要选择一个下拉列表,确保下拉列表中的选项与乘客详细信息匹配,但同时,我需要确保每个乘客的姓名和姓氏正确无误。在检索名字和姓氏后,我需要能够正确地连接这些名字,但不确定如何解决这个问题?您可以将新列表中的名字和姓氏列表连接为:
List<String> newList = new ArrayList<String>();
newList.addAll(listOne);
newList.addAll(listTwo);
然后验证下拉列表值是否与新列表值匹配。如果值匹配,则验证成功
要验证下拉列表,可以使用以下代码:
IWebElement comboBox = new WebDriverWait(_browserWindow, TimeSpan.FromSeconds(30)).Until(d => _browserWindow.FindElement(By.Id(id)));
SelectElement dropdownList = new SelectElement(comboBox);
int j = 0;
for (int i = 0; i < newList.Length; i++)
{
if (dropdownList.Options[i].Text == "")
{
continue; //if drop down contain 1st value as blank
}
if (dropdownList.Options[i].Text == newList[j])
{
j++;
Console.WriteLine("Value Matched");
}
else
{
throw new Exception("Data not found");
}
}
您可以根据需要更改上述代码