我使用SpecFlow + WatiN + nunit.framework为.net构建BDD测试
我想检查HTML页面上的以下功能:
Scenario: Change user role from 'Admin' to 'User'
Given I have logged in
And I am on the 'Add new user' page
Then the 'Homepage' should not be visible
When I select 'Role' as 'User'
Then the 'Homepage' should be visible
这是某些属性依赖于用户角色的情况。管理员没有主页,但用户没有。所以页面有一个适当的javascript来显示/隐藏它。
更新:我做了以下方法:
[Then(@"'(.*)' (should|should not) be visible")]
public void ThenElementShouldBeVisible(string elementName, string should)
{
var element = WebBrowser.Current.Elements.First(Find.ByLabelText(elementName));
Assert.That(should == "should"
? element.Style.Display == "none"
: element.Style.Display != "none");
}
但在我看来,在Javascript完成工作后,浏览器对象不会更新元素样式。
我不确定如何使用SpecFlow检查元素是否可见。