Я переписываю несколько тестов для проверки проверки ограничений на входы электронной почты. Я пытаюсь проверить следующий JavaScript:Как проверить допустимость ограничений ввода в Geb?
document.getElementById('theEmailId').validity.typeMismatch
Когда я тестирую это с использованием обычного старого JavaScript, все в порядке. Я получаю «true», что является ожидаемым ответом, когда адрес электронной почты недействителен. Когда я пытаюсь сделать это в Geb, я получаю всевозможные неприятности. Когда я пытаюсь
def isValid = js.exec("document.getElementById('theEmailAddress')")
с утверждением в том, что IsValid == верно
Я получаю ошибку сравнения Спока со следующим выходом:
Condition not satisfied:
isValid == true
| |
null false
Когда я пытаюсь
def isValid = js.exec(theEmailAddress,
"""
return \$(this).validity;
"""
)
Я получаю ошибку 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 или ошибку. Любые указания на то, что я мог бы сделать, чтобы заставить это работать?