2016-05-25 7 views
0

電子メール入力の制約の検証を確認するためのテストを書き直しています。私は、次のJavaScriptをチェックしようとしている:Geb内の入力の制約の有効性を確認するにはどうすればよいですか?

document.getElementById('theEmailId').validity.typeMismatch 

私は昔ながらのJavaScriptでこれをテストする場合、すべてが正常です。私は「真実」を得ます。これは、電子メールアドレスが無効な場合の予想される回答です。私がGebの中でこれをしようとすると、私はあらゆる種類の問題を抱えます。

Condition not satisfied: 

isValid == true 
|  | 
null false 

私は

  def isValid = js.exec(theEmailAddress, 
      """ 
       return \$(this).validity; 
      """ 
    ) 
をしようとすると:私は、アサーションがはisValid ==真

は、私は次の出力とスポック比較エラーが出るということでで

def isValid = js.exec("document.getElementById('theEmailAddress')") 

をしようとすると

次のレポートでjava.lang.IllegalArgumentExceptionエラーが発生します。

java.lang.IllegalArgumentException: Argument is of an illegal type: geb.content.TemplateDerivedPageContent 
at org.openqa.selenium.remote.internal.WebElementToJsonConverter.apply(WebElementToJsonConverter.java:81) 
at com.google.common.collect.Iterators$8.transform(Iterators.java:817) 
at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48) 
at com.google.common.collect.Iterators.addAll(Iterators.java:365) 
at com.google.common.collect.Lists.newArrayList(Lists.java:162) 
at com.google.common.collect.Lists.newArrayList(Lists.java:146) 
at org.openqa.selenium.remote.RemoteWebDriver.executeScript(RemoteWebDriver.java:572) 
at geb.js.JavascriptInterface.execjs(JavascriptInterface.groovy:37) 
at geb.js.JavascriptInterface.exec(JavascriptInterface.groovy:67) 
at com.ag.functionaltest.crs.specs.LoginGebSpec.The customer can not register using an email without @(LoginGebSpec.groovy:33) 

私は迷っています。私はbrowser.driver.executeScript、js.exec、jsを試してみました。すべてがnullまたはエラーを返します。これを動作させるために私が何をする可能性があるかについてのあらゆる指針は?

答えて

0

解決済み!ここで働いていたもの:

given: "The customer goes to login page" 
    to LoginPage 
    waitFor { LoginPage } 

    when: "The customer tries to register with an email without domain" 
    theEmailId.value("[email protected]") 

    and: "The customer clicks the continue button" 
    continueButton.click() 
    def isValid = js."window.document.getElementById('theEmailAddress').validity['typeMismatch']" 

    println isValid 

    then: "The customer should see this error" 

    assert isValid == true   
関連する問題