paul
paul

Reputation: 4487

Ruby: in `<top (required)>' from -e:1:in `load' from -e:1:in `<main>'

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

Answers (1)

paul
paul

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

Related Questions