Watin浏览器标题属性为空

时间:2012-05-03 21:21:17

标签: asp.net-mvc watin specflow

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

我已经尝试过调试,但由于浏览器是静态的,这似乎没有帮助。

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

非常感谢任何帮助!

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

更新

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

App.Config中

<?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>

Specflow Feature

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;
        }
    }
}

任何想法如何确定问题???

1 个答案:

答案 0 :(得分:0)

原来这是因为IE9在Internet Sites = \

的保护模式下运行

WatiN BrowserNotFoundException after upgrading to IE9

HTH