更改事件不会被 poltergeist 触发
change event not getting triggered with poltergeist
我有 2 个下拉菜单,第一个下拉菜单的变化预填充了第二个下拉菜单(已在 backbone 中完成)。
events: ->
'change #client_id': 'selectedClientChange'
selectedClientChange: (ev) ->
@populateGroups $(ev.target.selectedOptions).val()
编写了与 poltergeist 相同的水豚规范,但由于某种原因未触发更改事件,规范失败。
scenario 'it should populate the groups automatically', js: true, speed: :slow do
click_link 'New Item'
find('#name').set('Sample Item')
page.execute_script("$('#client_id').val('testing').trigger('change')")
select "#{client.name}", from: "client_id"
groups = find('#group_id').all('option').collect(&:text)
expect(groups.count).to eq 1
expect(groups).to include pg.name
end
谁能告诉我如何解决这个问题。
如果没有有关您收到的错误的详细信息,这主要是猜测 - 您可能在 select 的更改事件实际更新它们之前获取了这些组。您最好使用 have_select 匹配器,因为它会重试一段时间以查看字段是否更改以符合要求
select "#{client.name}", from: "client_id"
expect(page).to have_select('group_id', options: [pg.name])
啊对不起大家。我发现我在这里 https://github.com/teampoltergeist/poltergeist/issues/204 发现了 poltergeist 的问题。非常感谢!
我有 2 个下拉菜单,第一个下拉菜单的变化预填充了第二个下拉菜单(已在 backbone 中完成)。
events: ->
'change #client_id': 'selectedClientChange'
selectedClientChange: (ev) ->
@populateGroups $(ev.target.selectedOptions).val()
编写了与 poltergeist 相同的水豚规范,但由于某种原因未触发更改事件,规范失败。
scenario 'it should populate the groups automatically', js: true, speed: :slow do
click_link 'New Item'
find('#name').set('Sample Item')
page.execute_script("$('#client_id').val('testing').trigger('change')")
select "#{client.name}", from: "client_id"
groups = find('#group_id').all('option').collect(&:text)
expect(groups.count).to eq 1
expect(groups).to include pg.name
end
谁能告诉我如何解决这个问题。
如果没有有关您收到的错误的详细信息,这主要是猜测 - 您可能在 select 的更改事件实际更新它们之前获取了这些组。您最好使用 have_select 匹配器,因为它会重试一段时间以查看字段是否更改以符合要求
select "#{client.name}", from: "client_id"
expect(page).to have_select('group_id', options: [pg.name])
啊对不起大家。我发现我在这里 https://github.com/teampoltergeist/poltergeist/issues/204 发现了 poltergeist 的问题。非常感谢!