0

Java Webドライバーを使用してページ要素を次々に選択するコツはありますか?iframe内のフォームに値を設定しようとしています。

最初にiframeを切り替えて、最初のドロップダウンの値にアクセスして変更できます。他のページからWebElementを作成することはできますが、それらとはまったく対話できません。

以下のコードを使用すると、最初のドロップダウンの値を変更できます。

driver.switchTo().frame(0)

WebElement fromList = driver.findElement(By.id("foo"));
r.selectItemByText(fromList, "var");

その後、どの要素にもアクセスできなくなります。それらはすべてエラーなしで見つけることができますが、データがないと表示されているため、何もできません。

WebElement fromList = driver.findElement(By.id("bar"));
r.selectItemByText(fromList, "foo");**

2行目は、次のエラーを返します。

NoSuchElementException: Cannot locate element with value 'foo'

それを削除してもエラーは発生しないため、コードにはその値ではなく要素が表示されます。

4

1 に答える 1

1

要素が別のフレームにある場合は、デフォルトのフレームに切り替えてから、もう一度元に戻す必要があります。

何かのようなもの:

driver.switchTo().defaultContent();

理由は、フレームに切り替えると、別のフレームに切り替えると、その元のフレームの子フレームのみが検索されるためです。したがって、トップフレームに切り替えて、もう一度下に戻す必要があります。

于 2012-08-22T15:40:33.880 に答える