首先,我有特点:
import _root_.com.thoughtworks.selenium._
import org.scalatest.matchers.ShouldMatchers
import org.scalatest.matchers.ShouldMatchers._
trait SeleniumField extends ShouldMatchers {
val name : String
def selenium : Selenium
def text : String = { return selenium.getValue(name) }
def is(v:String) : Boolean = { this.value equals v }
def set(v:String) = { selenium.`type`( name , v ) }
}
Run Code Online (Sandbox Code Playgroud)
然后我用这个特性创建scala类:
import _root_.com.thoughtworks.selenium._
class WebAppField(sel:Selenium, nam: String) extends SeleniumField {
def selenium = sel
override val name = nam
}
Run Code Online (Sandbox Code Playgroud)
然后当我尝试在代码中使用它时:
val rodzaj = new WebAppField(selenium, "RODZAJ")
rodzaj text should equal "K"
Run Code Online (Sandbox Code Playgroud)
我有:
error: not found: value should
[INFO] rodzaj text should equal "K"
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
Scala ver 2.8
当您在Scala中省略方法调用中的点和圆括号时,它们总是以相同的方式进行解析,假设使用中缀表示法和单个参数.
rodzaj text should equal "K"
Run Code Online (Sandbox Code Playgroud)
是相同的
rodzaj.text(should).equal("K")
Run Code Online (Sandbox Code Playgroud)
尝试将其重写为:
rodzaj.text should equal("K")
Run Code Online (Sandbox Code Playgroud)
或者你可以完全标点为:
rodzaj.text.should(equal("K"))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
394 次 |
| 最近记录: |