2

Watin を Internet Explorer 9 の既存のインスタンスにアタッチしようとしています。問題は、何をしようとしてもタイムアウトするように見えることです。私が使用しているコードは次のとおりです。

Settings.AttachToBrowserTimeOut = 240;
Settings.WaitUntilExistsTimeOut = 240;
Settings.WaitForCompleteTimeOut = 240;   

Browser.AttachTo<IE>(Find.ByTitle("Google"), 240);

このコードは、こちらのWatinガイドにあるもので、私が試したタイムアウト調整を差し引いたものです。また、CPUではなくx86を実行するようにコードを設定しようとしましたが、まだ機能していません。私が間違っていることについてのアイデア。

4

1 に答える 1

2

あなたが書いたメソッドにはシングルスレッドがありませんApartmentState。これを修正する最も簡単な方法は、[STAThread]そのコードを使用しようとしているメソッドの上に追加することです。

たとえば、次のようになります。

//[STAThread]
static void Main(string[] args)
{
    IE.AttachTo<IE>(Find.ByTitle("Google"), 5);
}

あなたが説明したように動作します。コメントを外すと[STAThread]

[STAThread]
static void Main(string[] args)
{
    IE.AttachTo<IE>(Find.ByTitle("Google"), 5);
}

意図したとおりに機能します。

于 2012-06-12T12:45:26.693 に答える