\$var
然后我得到错误:System.IndexOutOfRangeException:在表中找不到名为“处于任何状态”的列。
答案 0 :(得分:0)
这就是我的方法。
Specflow场景步骤
And the 'TimeZoneId' dropdown should contain the values
| Value | Text |
| | --Select-- |
| Dateline Standard Time | (UTC-12:00) International Date Line West |
| UTC-11 | (UTC-11:00) Coordinated Universal Time-11 |
| Hawaiian Standard Time | (UTC-10:00) Hawaii |
以及已实现的步骤定义,其中p0是选择元素名称
[Then(@"the '(.*)' dropdown should contain the values")]
public void ThenTheDropdownShouldContainTheValues(string p0, Table table)
{
var dropdown = new SelectElement(Selenium.FindElement(By.Name(p0)));
var dropDownTextValues = dropdown.Options.Select(webElement => webElement.Text).ToList();
var textValues = table.Rows.Select(x => x[1]).ToList();
CollectionAssert.AreEquivalent(dropDownTextValues, textValues);
var dropDownValues = dropdown.Options.Select(webElement => webElement.GetAttribute("value")).ToList();
var values = table.Rows.Select(x => x[0]).ToList();
if (values.All(x => x == String.Empty))
return;
CollectionAssert.AreEquivalent(dropDownValues, values);
}
您可能会喜欢一点,以确保值和文本完全匹配,但这对我有用。