現在、問題があります-現在のフレームから親に切り替えたいです。アプリケーションには多くの内部フレームがあるため、driver.switchTo().defaultContent() を使用することはできません。この議論では、考えられる解決策が提案されています - あなたが訪れたすべてのフレームを覚えていて、それらを上から
driver.switchTo().defaultContent()
主な問題は、私のアプリケーションでは、時々、xpath および他のロケーターによって検出されたフレームへの切り替えを使用することを余儀なくされたことです。WebElement による切り替えを使用します。上記の説明で既に述べたように、切り替えた後は、配置されているすべての WebElement が無効になり、切り替えに使用できなくなります。したがって、フレーム内でこの要素を再度見つける方法が必要です。いくつかの js 呼び出し (ie (WebElement)executeScript("window.frames[i]").equals(myWebElement)
) を実行しているこのフレーム要素のインデックスを見つけることはできますが、一部のフレームがページから削除されるとインデックスが変更される可能性があるため、そうではありません。フレーム名と ID を見つけようとすることはできますが、指定されていない可能性があります。
だから私は唯一の可能な解決策を見ます - 現在選択されている親のフレームにいくつかの属性を設定します - 例の属性が値trueでアクティブです。また、フレームを切り替えることができるすべてのメソッドでこれを実行できるはずです(3つ存在します)。すべてのメソッドで、フレームを表す WebElement を受け取ることができますが、私が知る限り、属性値を変更するには、いくつかの js コードを実行する必要があります。したがって、問題はjsで現在のWebElementを見つける方法です。
これをすべて読んでくれてありがとう。