当前位置: 首页 > 面试题库 >

Scalatest PlusPlay Selenium无法调整窗口大小

洪飞鸿
2023-03-14
问题内容

已经研究了一段时间,我似乎找不到使用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,但是它可以工作。



 类似资料:
  • 窗口大小,我们可以非常方便的使用width、height调整,但是如何知道 width和height是一个问题? 在 Window 操作系统中,假如我们想要缩放,我们通常会把鼠标移动到窗口的右边栏,和底部边栏,以及右下边栏。 而且在不同的边栏,鼠标呈现的样式也是不一样的。当我们在右边栏的时候我们可以通过cursor: e-resize;模拟鼠标样式。 在底部边栏我们可以通过cursor: s-re

  • #include <stdio.h> void fun1(void) { int i = 0; i++; i = i * 2; printf("%d\n", i); } void fun2(void) { int j = 0; fun1(); j++; j = j

  • 我正在尝试构建一个包含6个窗格(作为父级添加到GridPane布局中)的简单Java项目。我必须在开始时设置窗口大小,并通过参考根布局的宽度和高度,设法将它们均匀地拆分。 但我想要他们调整大小,因为我改变了窗口的大小(使用鼠标,现在他们得到固定的大小)。 下面是我的代码:

  • 问题内容: 我有以下JQuery代码: 唯一的问题是,这仅在首次加载浏览器时有效,我是否还希望在调整窗口大小时进行检查? 有任何想法吗? 问题答案: 这是一个使用jQuery,javascript和css处理调整大小事件的示例。 (如果您只是通过调整大小来设置样式(媒体查询),最好的方法是CSS) [ CSS javascript jQuery 如何停止调整大小的代码执行如此频繁! 这是绑定到调整

  • 问题内容: 我正在使用Java编写一个简单的绘画程序,并且每当调整JFrame组件的大小时,我都希望调用某种方法。但是我找不到像windowResizedListener之类的任何方法或诸如windowResizedEvent之类的事件。我能做什么?! 问题答案: 实现一个具有:

  • 问题内容: 我是Redux的新手,我想知道是否有人对处理非React事件(如窗口调整大小)的最佳做法有一些建议。在我的研究中,我从React官方文档中找到了此链接:https : //facebook.github.io/react/tips/dom-event- listeners.html 我的问题是,在使用Redux时,应该将窗口大小存储在我的商店中还是应该将其保持在单独的组件状态? 问题答