已经研究了一段时间,我似乎找不到使用scalatest plus调整窗口大小的方法。
我找到在线搜索的唯一方法或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) } } } }
我的测试之一将根据窗口大小看到不同的元素,因此这是我需要控制的东西,但是我在Scala中确实找不到任何帮助。
谢谢您的帮助,
编辑:我还应该提到使用执行脚本运行的其他脚本正在按预期运行,而不是调整大小窗口脚本
通过添加以下代码行,我能够解决此问题:
webDriver.manage.window.setSize(new org.openqa.selenium.Dimension(1000, 600))
它不是很直观,因为我们必须显式访问隐式的webdriver,但是它可以工作。