5

问题以及我将如何使用普通的 Selenium API

我经常需要查询页面上的一个元素(比如 with 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”呢?当然,在这种情况下我可以只使用 Selenium API(即val bar = foo.underlying.findElement(By.cssSelector(".bar"))),但最终会使用 aWebElement而不是 ScalaTest 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 回答