問題と、プレーンな Selenium API を使用してそれを行う方法
多くの場合、ページ上の要素を照会し (たとえばcssSelector().element
)、それを使用してから、子孫要素を見つけたいとします。プレーンな Selenium API を使用すると、次のように記述できます。
val foo = webDriver.findElement(By.cssSelector(".foo"))
val bar = foo.findElement(By.cssSelector(".bar"))
ScalaTest Selenium DSL でこれを行うにはどうすればよいですか? 次の方法で「foo」要素を取得できます。
val foo = cssSelector(".foo").element
しかし、「foo」から「bar」を取得する方法は? もちろん、その場合 (つまりval bar = foo.underlying.findElement(By.cssSelector(".bar"))
) Selenium API を使用することもできますが、最終的WebElement
には ScalaTest ではなく a になりElement
ます。
別のクエリを実行する回避策
今のところ、以下に示すように、クエリをもう一度実行するだけですが、これは冗長で、明確ではなく、要素の下の要素を探すだけと常に同等であるとは限りません。
val fooSelector = cssSelector(".foo")
val foo = fooSelector.element
val boo = cssSelector(fooSelector.queryString + " .bar").element