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

时间:2017-01-31 19:58:12

标签: reactjs phantomjs cucumber bdd poltergeist

美好的一天,

我目前正在尝试对reactjs组件进行黄瓜测试,下拉搜索选择,使用PhantonJS以无头模式运行,但这会导致一种奇怪的情况,使我无法完全进行这些测试。

使用以下reactJs下拉列表http://jedwatson.github.io/react-select/,它是“'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_screenshot来查看错误发生前的状态,并且下拉列表的值正确。

问题

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

之前有没有人遇到过这个问题?

我愿意接受任何修复这种奇怪行为的建议。

额外详情

宝石'poltergeist','= 1.9.0' 宝石'黄瓜','〜> 2.0'

1 个答案:

答案 0 :(得分:0)

对于链接页面上的“城市(大型数据集)”示例,以下代码为我选择“纽约”条目,而不使用triggerexecute_script或{{1 }}

native

那是使用最新的Poltergeist和Capybara。如果没有最新的Capybara,您可能需要在最后一行中将正则表达式作为:text选项传递,而不是:exact_text选项(否则您将获得多个响应)

对于“贡献者(异步)”示例

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

会选择某人