0

mvc3 Web アプリで Specflow と共に Watin を使用しています。ステップ テスト メソッドに使用する静的ブラウザーを作成するヘルパーをセットアップしました。すべてが正しく設定されているように見えますが、テストを実行すると、アサーション (「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>

スペックフロー機能

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

これは、Internet Sites =\ に対して保護モードで実行されている IE9 が原因であることが判明しました。

IE9 へのアップグレード後の WatiN BrowserNotFoundException

HTH

于 2012-05-04T01:37:11.920 に答える