Scalatest PlusPlay Selenium 无法调整 window
Scalatest PlusPlay Selenium not able to resize a window
研究了一段时间,我似乎找不到使用 scalatest plus 调整 window 大小的方法。
我在网上搜索或在 http://doc.scalatest.org/2.1.5/index.html#org.scalatest.selenium.WebBrowser
上找到的唯一方法
是
executeScript("window.resizeTo(700,700);")
但这对我没有反应(没有错误,什么都没有)。有没有一种方法可以涵盖我所缺少的?我的代码的简短示例:
import java.util.concurrent.TimeUnit
import org.scalatestplus.play._
import org.openqa.selenium._
import com.sun.xml.internal.bind.v2.TODO
import scala.collection.JavaConverters._
import controllers.Application
import models.{Item, ItemPriorityBucket}
import play.api.test._
import org.scalatest.time._
class WebSpec extends PlaySpec with OneServerPerSuite with AllBrowsersPerTest {
implicit override val patienceConfig =
PatienceConfig(timeout = scaled(Span(5, Seconds)), interval = scaled(Span(20, Millis)))
override lazy val browsers = Vector(
// FirefoxInfo(firefoxProfile),
ChromeInfo
// SafariInfo
)
implicit override lazy val app: FakeApplication =
FakeApplication(additionalConfiguration = TestUtil.inMemoryDatabase("default", Map()))
val base: String = "http://localhost:" + port
def sharedTests(browser: BrowserInfo) = {
"Home page" should {
"render an item" + browser.name in {
executeScript("window.resizeTo(700,700);")
Item.deleteAll()
delete all cookies
val itemId = TestUtil.createRandomItem(Some(ItemPriorityBucket.Low), Some(Application.ENGLISH))
val item = Item.find(itemId).get
go to (base + "/")
eventually { assert(cssSelector(Selectors.all_items).webElement.isDisplayed) }
}
}
}
我的一个测试会根据 window 大小看到不同的元素,所以这是我需要控制的东西,但我真的找不到任何帮助在 Scala 中执行此操作。
感谢您的帮助,
编辑:我还应该提到其他使用执行脚本的脚本 运行 正在按预期运行,只是调整大小 window 脚本
我通过添加以下代码行解决了这个问题:
webDriver.manage.window.setSize(new org.openqa.selenium.Dimension(1000, 600))
它不是很直观,因为我们必须显式访问隐式网络驱动程序,但它有效。
研究了一段时间,我似乎找不到使用 scalatest plus 调整 window 大小的方法。
我在网上搜索或在 http://doc.scalatest.org/2.1.5/index.html#org.scalatest.selenium.WebBrowser
上找到的唯一方法是 executeScript("window.resizeTo(700,700);")
但这对我没有反应(没有错误,什么都没有)。有没有一种方法可以涵盖我所缺少的?我的代码的简短示例:
import java.util.concurrent.TimeUnit
import org.scalatestplus.play._
import org.openqa.selenium._
import com.sun.xml.internal.bind.v2.TODO
import scala.collection.JavaConverters._
import controllers.Application
import models.{Item, ItemPriorityBucket}
import play.api.test._
import org.scalatest.time._
class WebSpec extends PlaySpec with OneServerPerSuite with AllBrowsersPerTest {
implicit override val patienceConfig =
PatienceConfig(timeout = scaled(Span(5, Seconds)), interval = scaled(Span(20, Millis)))
override lazy val browsers = Vector(
// FirefoxInfo(firefoxProfile),
ChromeInfo
// SafariInfo
)
implicit override lazy val app: FakeApplication =
FakeApplication(additionalConfiguration = TestUtil.inMemoryDatabase("default", Map()))
val base: String = "http://localhost:" + port
def sharedTests(browser: BrowserInfo) = {
"Home page" should {
"render an item" + browser.name in {
executeScript("window.resizeTo(700,700);")
Item.deleteAll()
delete all cookies
val itemId = TestUtil.createRandomItem(Some(ItemPriorityBucket.Low), Some(Application.ENGLISH))
val item = Item.find(itemId).get
go to (base + "/")
eventually { assert(cssSelector(Selectors.all_items).webElement.isDisplayed) }
}
}
}
我的一个测试会根据 window 大小看到不同的元素,所以这是我需要控制的东西,但我真的找不到任何帮助在 Scala 中执行此操作。
感谢您的帮助,
编辑:我还应该提到其他使用执行脚本的脚本 运行 正在按预期运行,只是调整大小 window 脚本
我通过添加以下代码行解决了这个问题:
webDriver.manage.window.setSize(new org.openqa.selenium.Dimension(1000, 600))
它不是很直观,因为我们必须显式访问隐式网络驱动程序,但它有效。