如何使用SpecFlow测试选择html控件对象?

时间:2012-09-16 00:55:10

标签: c# testing specflow acceptance-testing

我在页面上有html选择:

<select id="StateName" name="StateName">
<option value=""></option>
<option value="value1">value1</option>
<option value="value2">value2</option>
<option value="value3">value3</option>
<option value="value4">value4</option>
<option value="value5">value5</option>
</select>

我已经尝试过这样的步骤定义

[When("I select value \"(.*)\" of select object with id \"(.*)\"")]
public void ThenSelectValueOfSelect(string value, string selectId)
{
   var select = TestsRunner.Browser.GetElementById(selectId);
   select.Click();
   var item = TestsRunner.Browser.GetElementsByTag(@"option").SingleOrDefault(o => o.GetAttribute("value").Equals(value, StringComparison.OrdinalIgnoreCase));
   item.Click();
}

作为testsrunner浏览器,我使用firefox。问题是选择项目被删除但没有选择具体选项。

1 个答案:

答案 0 :(得分:3)

我认为可以做得更短/更容易。我从下拉框中选择值的方式:

SelectElement dropdown = new SelectElement(Driver.FindElement(By.Id(dropdownID)));
dropdown.SelectByValue(valueToBeSelected);

它非常简单直接,只是有效。