5

問題と、プレーンな 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
4

1 に答える 1

1

cssSelectorメソッドはオブジェクトを作成しますCssSelectorQuery。そのオブジェクトを引数として find メソッドに渡すことができます。

val foo = find(cssSelector(".foo")).get
于 2014-12-22T11:59:29.640 に答える