Reputation: 4487
Here's my ruby script: To run this script I am using "JetBrains Ruby Mine"
require 'rubygems'
require 'watir-webdriver'
require 'cucumber'
Given(/^a user goes to website$/) do
driver = Watir::Browser.new :ff
driver.goto 'http://www.website.com'
end
When(/^user searches for "([^"]*)"$/) do |arg|
driver.text_field(:id => 'searchtextbox').set "#{arg}"
driver.send_keys :return
end
Then(/^website should return results for "([^"]*)"$/) do |arg|
#pending
end
Here's .feature
file for above script:
Feature: Website search functionality
Scenario: Users can search for an specific item on website
Given a user goes to website
When user searches for "pens"
Then website should return results for "pens"
On executing above script I am getting:
from C:/Users/Admin/RubymineProjects/my_project/features/step_definitions/website_search.rb:5:in `<top (required)>'
from -e:1:in `load'
from -e:1:in `<main>'
To fix this I installed above gems in root directory of project, but still same error.
IRB output of lines script are here:
Switch to inspect mode.
>> >> require 'watir-webdriver'
require 'watir-webdriver'
=> true
?> ?> require 'cucumber'
require 'cucumber'
=> true
#opens browser window**
?> ?> driver = Watir::Browser.new :firefox
driver = Watir::Browser.new :firefox
?> driver.goto 'http://www.website.com'
=> #<Watir::Browser:0x30d36020 url="about:blank" title="">
driver.goto 'http://www.website.com'
=> "http://www.website.com/"
#Types pens in search box
?> ?> driver.text_field(:id => 'twotabsearchtextbox').set "#{"pens"}"
driver.text_field(:id => 'twotabsearchtextbox').set "#{"pens"}"
=> ""
#Press enter/return
?> ?> driver.send_keys :return
driver.send_keys :return
=> ""
Upvotes: 1
Views: 614
Reputation: 4487
Seeing the results above, everything seems fine to me. It's just that you need to run .feature
file and not the .rb
script file.
OR
If you want to run via terminal/command line simply use:
cucumber feature_file_name
Upvotes: 1