0

我在 mvc3 Web 应用程序上使用 Watin 和 Specflow。我已经设置了一个助手来创建一个静态浏览器以用于我的步骤测试方法。一切似乎都设置正确,但是当我运行测试时,断言中的浏览器标题属性为空(我的“Then”方法)。我还尝试在页面上搜索元素,但浏览器最终会超时。

我尝试过调试,但这似乎也无济于事,因为浏览器是静态的。

还有什么可能导致这种情况?

任何帮助是极大的赞赏!

BTY-浏览器打开并导航到我在第一步请求的页面。

更新:

我创建了另一个应用程序来试图找出问题......同样的问题。代码如下所示。

应用程序配置

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
        <sectionGroup name="NUnit">
            <section name="TestRunner" type="System.Configuration.NameValueSectionHandler"/>
        </sectionGroup>
    </configSections>
    <NUnit>
        <TestRunner>
            <!-- Valid values are STA,MTA. Others ignored. -->
            <add key="ApartmentState" value="STA" />
        </TestRunner>
    </NUnit>
</configuration>

规范流功能

Feature: TestMyWebApp
In order to test my web app
As a user
I want to navigate to the home page

@mytag
Scenario: Navigation to homepage
When I navigate to /Home
Then I should be on the home page

步骤文件

[Binding]
public class TestMyWebAppSteps
{
    [When(@"I navigate to /Home")]
    public void WhenINavigateToHome()
    {
        WebBrowser.Current.GoTo("http://localhost:57556/Home");
    }


    [Then(@"I should be on the home page")]
    public void ThenIShouldBeOnTheHomePage()
    {
        Assert.AreEqual("Home", WebBrowser.Current.Title);
    }
}

浏览器助手

public static class WebBrowser
{
    public static IE Current
    {
        get
        {
            string key = "browser";
            if (!ScenarioContext.Current.ContainsKey(key))
            {
                ScenarioContext.Current[key] = new IE();
            }
            return ScenarioContext.Current[key] as IE;
        }
    }
}

有什么想法可以查明问题吗???

4

1 回答 1

0

原来这是由于 IE9 在 Internet 站点的保护模式下运行 =\

升级到 IE9 后出现 WatiN BrowserNotFoundException

高温高压

于 2012-05-04T01:37:11.920 回答