ave*_*net 5 selenium scalatest
我经常需要查询页面上的元素(比如说cssSelector().element),使用它,然后想要找到一个后代元素.使用普通的Selenium API,我会写一些类似于:
val foo = webDriver.findElement(By.cssSelector(".foo"))
val bar = foo.findElement(By.cssSelector(".bar"))
Run Code Online (Sandbox Code Playgroud)
如何使用ScalaTest Selenium DSL做到这一点?我可以得到"foo"元素:
val foo = cssSelector(".foo").element
Run Code Online (Sandbox Code Playgroud)
但那么如何从"foo"中获得"酒吧"?当然,我可以在这种情况下使用Selenium API(即val bar = foo.underlying.findElement(By.cssSelector(".bar"))),但最终会得到一个WebElement而不是ScalaTest Element.
现在,我只是重新运行查询,如下所示,但是发现这个详细,不太清楚,并不总是等同于只查找元素下的元素.
val fooSelector = cssSelector(".foo")
val foo = fooSelector.element
val boo = cssSelector(fooSelector.queryString + " .bar").element
Run Code Online (Sandbox Code Playgroud)
该cssSelector方法创建一个CssSelectorQuery对象。您可以将该对象作为参数传递给 find 方法:
val foo = find(cssSelector(".foo")).get
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
884 次 |
| 最近记录: |