0

ログインして、動的にロードされた Web ページで WatiN を使用して注文のステータスを確認する Web 自動化を実行しようとしています。Visual Studio C# Express 2010 と IE ブラウザーを使用しています。

昨日は正常に動作していた a から .Text を取得するためのいくつかのコード<TD>が動作しなくなりました。問題のにはと<TD>が含まれていますが、これは問題ですか?<NOBR><INPUT>

必要なテキストも含まれています<INPUT>が、タグには定義された属性IDまたはNAME属性がなく、テストごとに同じではない内部テキスト/値が含まれています。問題のサイトを編集できません。または、これは何年も前に修正されたはずです。

犯人:

public TableCell Status {
    get {
        return Document.TableCell(Find.ById("elementID")); 
    }
}

他の TableCells は機能していませんが、TextFields とボタンは問題ありません。私の推測では、この Web サイトは大規模であり、WatiN は要素を見つけようとして時々タイムアウトする可能性があります。ElementNotFoundException()ただし、ドキュメントの最後に到達した場合にのみ、WatiN が をスローしたことはかなり確信していました。(???)

フォーム要素は、デバッグのために完全にロードされていなかったので、問題になる可能性があると思いましたが、要素ではない for 要素はすべて正しくロードされ、存在することはすべてに当てはまりました。また、これは単なるデバッグの問題であり、.exe を .dll ファイルと共にデスクトップにコピーすると問題なく動作しました。

「プロパティ評価とその他の暗黙的な関数呼び出しを有効にする」が無効になるようにデバッガーを設定しましたが、それは役に立ちませんでした。

この方法は、ストレート .exe を実行していたときに機能しましたが、Visual Studio では機能しませんでした。その後、まったく同じコードを再構築し、.exe をデスクトップに再度コピーすると、機能しなくなりました。

更新: 接続先のサイトの Web 管理者がいくつかの変更を加えたようです。彼から返事が来たらまた更新します。

4

2 に答える 2

0

リンクなど、さまざまな WatiN テスト ランナーがページ上の要素を「見る」ことができないという問題がありました。私が見つけた修正の 1 つは、昇格されたアクセス許可を持つアカウントでテスト ランナーを開くことでした。

于 2012-10-12T21:48:26.093 に答える
0

それでは、次のようなことを試すことができます。

Document.WaitForComplete();

また

TableCell tc = Document.TableCell(Find.ById("elementID"));
tc.WaitUntilExists();

テーブルセルが存在するためには?

于 2012-10-11T13:53:34.263 に答える