19

シナリオ: - iFrame テキスト エディターとページ内のボタンを含むページがあります。・親フレームからiFrameに切り替えて、テキストエディタ本体から読み込んだ ・テキストエディタ本体から読み込んだ後、ページの親フレームにあるボタンをクリックしたい。- このために、次のステートメントを使用して iFrame から親フレームに切り替えようとしました: webDriver.SwitchTo().DefaultContent(); - それでも、親フレームにあるボタン要素を見つけることができません。

私はあなたの助けに感謝します!ありがとう

4

3 に答える 3

16

それは皆さんの回答です。解決しました!

ソリューション:

  • を使用している間、ページの一番上のウィンドウにwebDriver.SwitchTo().DefaultContent();切り替わります。webDriver[以前、このウィンドウでボタン要素を探していましたが、ボタンがページのメイン フレームに配置されていたため、見つけることができませんでした]

  • メインウィンドウに切り替えた後webDriver、ページのメインフレームに再度切り替えました。このメイン フレームにはボタン要素がありました。したがって、ボタン要素を見つけることができました。そして、これは問題を解決しました!

したがって、最終的なコードにはありませんがwebDriver.SwitchTo().DefaultContent();、代わりに次のものがあります。

    _webDriver.SwitchTo().Window(windowHandle);
    _webDriver.SwitchTo().Frame("mainFrame");

注: 上記のコードの windowHandle は、ページの一番上のウィンドウのハンドルです。ブラウザーによって値が変わる可能性があると思いますが、確かではありません。

于 2013-07-09T15:25:42.743 に答える
7

私は同様の問題に苦しんでおり、次の方法で元に戻すことができることがわかりましたWindow Handle

string currentWindow = Driver.CurrentWindowHandle;
// switch to frame and do stuff..
Driver.SwitchTo().Window(currentWindow); // switch back
于 2014-06-23T22:03:02.913 に答える