问题以及我将如何使用普通的 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