我在模态对话框中有一些输入字段,如此(那是玉):
.modal-body
.control-group
label.required(for="event-planner-email")= Email
.input
input#event-planner-email(name="email", type='text')
.control-group
label.required(for="event-planner-name")= Name
.input
input#event-planner-name(name="name", type='text')
我希望能够在测试中填写它们。我尝试按下打开模态的链接并使用zombie.js浏览器对象填充字段,咖啡中的代码如下:
browser.clickLink 'a#open-planner', () ->
browser
.fill('event-planner-email', someEmail)
.fill('event-planner-name', someName)
.pressButton 'Create', () ->
do done
但我收到一条错误消息:“没有INPUT匹配'event-planner-email'”。如果有人知道如何做到这一点,将非常感谢帮助。谢谢!
答案 0 :(得分:0)
当你的回叫开始时,也许还没有看到模态。如果发生转换以显示模态,则必须等待该转换完成。
也许可以尝试在setTimeout
的回调中添加clickLink
:
browser.clickLink 'a#open-planner', ->
fillForm = ->
browser
.fill('event-planner-email', someEmail)
.fill('event-planner-name', someName)
.pressButton 'Create', ->
do done
setTimeout fillForm, 1000
答案 1 :(得分:0)
你需要在模态加载后运行你的僵尸代码,所以你应该使用“显示”事件
$('#myModal').on('shown', function () {
// zombie
})
我不确定如何在咖啡中代表
答案 2 :(得分:0)
谢谢大家,原来我只是没有为输入元素使用正确的css选择器,所以代替
.fill('event-planner-email', someEmail)
应该是
.fill('input#event-planner-email', someEmail)
因为在上面的jade片段中,'event-planner-email'是输入元素的id。想要删除我的问题,这样我就不会再进一步暴露我的愚蠢,但显然已经太晚了。