我的Rails应用程序中有一些前端组件。而且我喜欢与Capybara进行一些端到端的测试。现在,当我测试一个组件时,我在获取一些数据时遇到了问题。我需要单击一个选择框,该选择框应该在获取数据时显示。但Capybara无法找到它我使用Selenium驱动程序与Chrome。因此,当我运行测试时,我可以看到React呈现的部分,但Capybara不能。当我在控制台中打印出html时,我正在寻找的部分丢失了。 我试图增加Capybara的default_max_wait_time,但这不起作用。
在我的测试中,我尝试执行以下操作:
test 'some test' do
visit '/somepage'
fill_in 'search', with: 'items'
# fetching items here
click_on 'Search'
check 'check_all'
end
在我的React组件中,我有类似的东西:
render() {
return(
<div>
{props.items !== undefined && <input type="checkbox" name="check_all"/>}
</div>
)
}
获取项目。我用Redux跟踪应用程序状态。
修改 我发现复选框已呈现我添加了binding.irb以打开控制台。页面正文有我正在寻找的复选框,但是这个复选框的名称属性没有呈现我得到:
<input type="checkbox" />
而不是:
<input type="checkbox" name="check_all" />
当我在浏览器中运行我的应用程序时,我确实有可用的名称属性。