1

以下のような非常に単純なwatinコンソールアプリケーションを実行します

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WatiN.Core;

namespace ConsoleApplication2
{
    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            IE ie = new IE();

            // point it to http://www.google.com

            ie.GoTo("http://www.google.com");

            // fill the search box

            ie.TextField(Find.ByName("q")).TypeText("WatiN");

            // performs click event

            ie.Button(Find.ByValue("Google Search")).Click();
        }
    }
}

これは機能していません。ポップアップに、不足している.exeファイルがあると表示されました。ただのコンソールアプリケーションなのでわかりません。なぜ.exeファイルが必要なのですか?

4

1 に答える 1

1

Internet Explorerを介したWebアプリケーションのテストWatiNに使用する場合は、最初に正しい構成を完了するようにしてください。

NUnitSTA apartment state;を使用してスレッドでテストを実行しません。を使用しますmultithreaded apartment (MTA)が、これは大きな問題ではありません。構成ファイルをNUnitテストプロジェクトに添付して、次のように必要なアパートの状態モードを指定できます。

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

記事の参照:

WatiN、Internet Explorer、およびThread.Apartmentstate

この記事では、スレッドのApartmentStateをシングルトレッドアパートメント(STA)に設定する理由と方法について説明します。これは、InternetExplorerでテストを実行するときに必要です。また、WatiNをNUnit、MBUnit、MSTest、TestDriven.Net、Fitness、またはSharpDevelopで使用する場合の方法も示します。

于 2012-11-02T03:53:31.530 に答える