自从升级到 Geb 0.12.2 和 Selenium 2.48.2,我无法让以下工作:
$("form").validOn(dateString)
我尝试了以下变体:
$("input",name:"validOn").value(dateString)
和
$("form").validOn << Keys.chord(Keys.CONTROL, "a")
$("form").validOn << Keys.chord(Keys.DELETE)
if(date){
$("form").validOn << date
}
我试图设置的元素是使用 jquery datepicker:
<form class="form-inline">
<label>Valid On:</label>
<input size="10" type="text" id="datepicker-validOn" name="validOn" value="${validOn}">
...
</form>
..
..
<r:script type="text/javascript">
$("#datepicker-validOn").datepicker({
format:"${session.sessionPreferences?.globalDatepickerFormat}"
});
...
日期选择器已打开,这意味着选择字段有效,但字符串值未放置在输入字段内。我怀疑这与焦点转移到日期选择器有关,但还没有找到解决方法。我试过有两个
.value(dateString)
希望第二个将焦点重新回到该领域,但这并没有奏效。此外,日期选择器不会更改原始 html。我正在使用 Firefox 33.1.1
这只发生在 headless 环境中,使用带有 Xvfb 的 Hudson 来运行功能测试。 使用相同版本的 Firefox 在桌面上本地运行按预期工作,使用以下格式:
$("input",name:"validOn").value(dateString)
有什么建议么?
最佳答案
将 Xvfb 的分辨率从 1024x1024x24 更改为 1600x1200x24 已解决此问题。不知道这会如何影响元素聚焦,但显然确实如此。
关于grails - Geb - 带有日期选择器的 Selenium 输入焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33209882/