visit('/path')
visit(models_path)
visit(model_path(model))
visit '/path'
visit models_path
visit model_pathmodel
click_link 'id-do-link'
click_link 'Texto do link'
click_button 'Criar Vaga'
click_on 'Texto do Botão'
click_on 'id-do-elemento'
fill_in('Endereço', with: 'Rua da Ladeira, 54') # encontra o elemento por label
fill_in 'Password', with: '543543fadsfa#@'
fill_in 'Descrição', with: 'Texto super longo.......'
fill_in 'user[name]', with: 'Maria' # encontra por name do elemento
fill_in 'user_name', with: 'John' # encontra o elemnto por id
select('Option', from: 'Select Box')
select 'Matérias', from: 'Matemática' # use mais de uma vez o mesmo label
select 'Matérias', from: 'Geografia' # para multiplas escolhas
select 'Matérias', from: 'Filosofia'
# funciona também por id e name
select 'user[classroom]', from: 'Auditório'
check('A Checkbox')
uncheck('A Checkbox')
check 'id-do-checkbox'
uncheck 'name[checkbox]'
choose('A Radio Button')
attach_file('Image', '/caminho/para/imagem.jpg')
Todos esses métodos retornam um boolean
# por css
page.has_selector?('table tr')
page.has_css?('table tr.foo')
# por xpath
page.has_selector?(:xpath, '//table/tr')
page.has_xpath?('//table/tr')
# encontrando conteúdo
page.has_content?('foo')
As forma de consulta acima pode ser usadas com o Rspec, ex:
expect(page).to have_content('Texto da página')
expect(page).to have_css('h1', text: 'Super titulo')
xpect(page).to have_css('h3', count: 3) # 3 elementos h3
expect(page).to have_selector('table tr.row') # elemento tr com css 'row' em uma table
# outras expectativas
expect(current_path).to eq models_path
expect(page).to have_current_path(post_comments_path(post))
expect(find('elemento')).to have_content 'Texto' # espera encontrar um texto dentro de um elemento específico
expect(find('#id-css')).to have_content 'Texto'
# salva um html da pagina e abre no browser. (para abrir precisa da gem launchy)
save_and_open_page
# preenche o campo com label Busca dentro de um form com id 'id-form1'
within('form#id-form1') do
fill_in 'Busca', with: 'Valor'
end
Crie uma feature por arquivo, esses arquivos devem ser criado na pasta
spec/features
e deve ter o nome da features com o sufixo _spec
.
Ex: spec/features/user_visits_home_page_spec.rb
feature 'Mensagem' do
end
Um ou mais por feature
feature 'Mensagem' do
scenario 'mensagem do scenario' do
end
end
Exemplo:
feature 'User visits home page' do
scenario 'successfully' do
...
end
scenario 'do login' do
...
end
end