带有Play框架的ScalaJs(测试中出错)

带有Play框架的ScalaJs(测试中出错),scala,scala.js,utest,playscalajs,Scala,Scala.js,Utest,Playscalajs,我正在尝试将ScalaJs交叉构建项目与PlayFramework2.5结合使用。 在尝试运行Client.scala的测试时,我遇到了一个问题。 我得到的错误是- 原因:TypeError:无法调用null的方法“appendChild” 客户端代码段 @JSExport object DashboardClient extends js.JSApp { @JSExport def main(): Unit = { val dashboard = new Dashboard dom.docum

我正在尝试将ScalaJs交叉构建项目与PlayFramework2.5结合使用。 在尝试运行Client.scala的测试时,我遇到了一个问题。 我得到的错误是-

原因:TypeError:无法调用null的方法“appendChild”

客户端代码段

@JSExport
object DashboardClient extends js.JSApp {
@JSExport
def main(): Unit = {
val dashboard = new Dashboard
dom.document.getElementById("bodyContent").appendChild(dashboard.bodyFrag.render)
}
这个bodyFrag在另一个类中

 def bodyFrag =
div(
  div(
    `class` := "row border-bottom",
    div(
      `class` := "col-md-12",
      div(
        `class` := "col-md-2 image-alignment",
        img(width := "161", src := "/assets/images/mountain.jpg")
      ),
      div(`class` := "col-md-10")
    )
  ),
  div(
    `class` := "row border-bottom",
    div(
      `class` := "col-md-12",
      div(
        `class` := "col-md-12",
        h1(`class` := "text-center", "Dashboard")
      )
    )
  )
)
因此,当我尝试使用utest进行测试时,我得到了上面提到的错误。 请帮忙


另外,我对Scala和ScalaJs完全陌生。

嗯,这个错误似乎与
bodyFrag
没有任何关系。(或者Play,甚至Scala.js,真的。)错误实际上是说
getElementById(“bodyContent”)
为空,这意味着它还不存在。我假设它是在HTML中声明的

这是浏览器代码中常见的陷阱。您需要等待DOM准备就绪,然后再尝试操作它;您没有显示HTML页面,因此我不确定您是否正在这样做,但我怀疑没有

等待DOM就绪的方法有多种——讨论了常见的(但速度较慢的)
onload
方法和jQuery方法。作为一个快速解决方案,我建议将对Scala.js代码的调用包装在
window.onload