PageObjects を使用して Selenium Webdriver でテストスイートを作成していますが、ドライバーが別のフレームを指していても、WebElement 参照インスタンスが機能するかどうかは疑問です。私がテストを書いているサイトにはたくさんのフレームがあり (フレームの使用をやめることはできません :-))、すべてのサイトの 1 つのフレーム要素がトップバーです。そのフレーム用に、それを含む他の PageObjects から初期化して使用できる単一の PageObject を作成したいと思います。
しかし、ドライバーが別のフレームに移動したときに WebElements を使用できるかどうかは疑問です。
例:
- 新しい HomePage PageObject の作成と初期化
- SwitchTo(frame1)。SwitchTo(frame2)
- コンストラクターから、上記のドライバーの場所を使用して要素を初期化/インスタンス化する TopBar オブジェクトを作成します。elmTopBar と呼ばれるその PageObject/frame 内の WebElement への参照があります。
HomePage では、ドライバーはそのフレームから離れて (フレーム 0 に戻る) 他の作業を行います。
elmTopBar への「古い」参照は、このドライバーの場所 (同じドライバー オブジェクト) から引き続き実行できますか、それとも、ドライバーが毎回 frame2 を指している場合にのみ機能します (つまり、HomePage で何かが必要になるたびに、TopBar オブジェクトを切り替え + 初期化する必要があります)。トップバー)?
別のフレームから要素検索を行うと、他のフレームのオブジェクトが見つからないことはわかっていますが、私の質問は、 WebElement への参照を作成/保存するときに、 switchTo(frameX ) ドライバーと一緒に。
事前にthx!