ReactJS DropDown和PhantonJS Headless在一起玩得不好

ReactJS DropDown和PhantonJS Headless在一起玩得不好,reactjs,phantomjs,cucumber,bdd,poltergeist,Reactjs,Phantomjs,Cucumber,Bdd,Poltergeist,大家好 我目前正在尝试使用PhantonJS在reactjs组件上运行cucumber测试,下拉搜索选择,在无头模式下运行,但这导致了一种奇怪的情况,使我无法完成这些测试 使用下面的reactJs下拉列表,它是“'Github用户(与fetch.js异步)'” 当前的问题是,当场景达到第四个示例测试时,它失败了,但使用相同的代码通过前三个测试 我认为这是第四个示例,所以我用其他值对其进行了更改,但在第四步仍然失败 这是用于在下拉搜索中输入值的代码 find(".Select").trigger(

大家好

我目前正在尝试使用PhantonJS在reactjs组件上运行cucumber测试,下拉搜索选择,在无头模式下运行,但这导致了一种奇怪的情况,使我无法完成这些测试

使用下面的reactJs下拉列表,它是“'Github用户(与fetch.js异步)'”

当前的问题是,当场景达到第四个示例测试时,它失败了,但使用相同的代码通过前三个测试

我认为这是第四个示例,所以我用其他值对其进行了更改,但在第四步仍然失败

这是用于在下拉搜索中输入值的代码

find(".Select").trigger("click")

fix_overlap = %{ $('.Select-placeholder').css('z-index', -99999) }
page.execute_script(fix_overlap)

find(".Select .Select-input input").native.send_keys(with)
find(".Select-menu-outer", text: with, visible: :all, match: :first).click
react控件正在执行异步调用,以从API端点搜索输入数据

我能够在浏览器中运行测试,没有问题

测试返回的错误是在下拉列表中找不到值

我在注册poltergeist时已经在环境设置中添加了选项

options = {:js_errors => false, phantomjs_options: ['--debug=true'], debug: false }
Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, options) 
end
查看是否存在调试控制台中未显示的内部错误

我已经做了一个page.save_屏幕截图,以查看错误发生前的状态,下拉列表具有正确的值

问题

是否可以添加其他选项以显示更多信息/错误

以前有人遇到过这个问题吗

我愿意接受任何纠正这种奇怪行为的建议

额外细节

gem‘恶鬼’,‘=1.9.0’ gem'cucumber','~>2.0'

对于链接页面上的“城市(大型数据集)”示例,以下代码为我选择“纽约”条目,而不使用
触发器
执行脚本
本机

with = "New York"
section = find('.section', text: 'Cities (Large Dataset)')
section.find('.Select').click
section.find('.Select-placeholder').send_keys(with)
section.find('.VirtualizedSelectOption', exact_text: with).click
这是使用最新的恶灵和水豚。如果没有最新的Capybara,您可能需要在最后一行将regex作为:text选项传递,而不是:exact_text选项(否则您将得到多个响应)

对于“参与者(异步)”示例


将选择某人

我对问题进行了更改,因为我列出了不正确的下拉列表。我尝试了您的方法@Thomas Walpole,它对“城市(大型数据集)”非常有效,但对“Github用户(与fetch.js异步)”似乎不起作用。它似乎有一个问题,建立'的。VirtualizedSelectOption的值。Capybara::ElementNotFound:找不到css“.VirtualizedSelectOption”精确文本为craig davis./features/step_definitions/test_peter.rb:11:in
/^我输入了数据$/./features/online_v2/create_ea_business.feature:90:in
我输入了数据。/features/online_v2/create_ea_business.86:in`我输入了数据'1个场景(1个失败)2个步骤(1个失败,1个通过)@PeterChannon我今天没有更多的时间来讨论另一个问题,但由于它使用fetch.js,我想这是因为PhantomJS版本中缺乏对承诺或类似内容的支持。(PhantomJS 2.1.1基本上相当于6年前的Safari版本)我尝试对另一个下拉菜单“Contributors(Async)”运行测试,该下拉菜单未使用fetch.js,但仍会抛出相同的错误。
with = 'Craig Dallimore'
section = sess.find('.section', text: 'Contributors (Async)')
section.find('.Select').click
section.find('.Select-input input').send_keys(with.gsub(' ', '')
section.find('.Select-option', exact_text: with).click