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");
                    }
                }
您可以根据需要更改上述代码