我在页面上有这个选择:
<select multiple="" class="recipientsList" name="Recipients[]" id="To" style="display: none;">
<option value="User-6" class="">Coordinator, Test</option>
<option value="Course-4" class="">New Course 1</option>
<option value="UserType-6" class="">Coordinators</option>
<option value="UserTypeInCourse-4-6" class="">New Course 1 Coordinator</option>
</select>
我正在运行这个测试:
public IWebDriver WebDriver
{
get
{
// gets the current WebDriver instance, set up elsewhere at the beginning
// of the fixture
return ScenarioContext.Current.WebDriver();
}
}
public void SelectTest()
{
// code to navigate to proper page
var options = WebDriver.FindElements(By.CssSelector("select.recipientsList option"));
Assert.That(options, Is.Not.Empty, "No options found.");
Assert.That(!options.Any(option => string.IsNullOrEmpty(option.Text)), "Some or all options have blank text.");
// Actual useful assert
}
第二个断言失败,因为options
集合中的所有元素都将空字符串作为其 Text 对象。如果我删除添加display:none;
样式的页面上的 JavaScript,它会起作用。这不是一个永久的解决方案,因为这个选择需要被隐藏,因为它是由FCBKcomplete扩展的。
如何在 .NET 中使用 Selenium 2/WebDriver 获取隐藏选择选项的文本?