如何编写简单的Cucumber脚本

时间:2017-05-16 22:56:53

标签: ruby google-chrome firefox methods cucumber

我正在按照教程运行我的第一个Cucumber脚本:

Feature: guru99 Demopage Login   
In order to Login in Demopage we have to enter login details

Scenario: 
Register On Guru99 Demopage without email
Given I am on the Guru99 homepage
When enter blank details for register
Then error email shown

我在Idea中有项目,但是当我运行它时会出现错误。

使用chrome时:

Failed to open TCP connection to 127.0.0.1:9515 (No connection could be made because the target machine actively refused it.

我不知道如何解决它。

使用Firefox时,脚本会成功打开浏览器,但在此之后失败:

require 'watir'
require 'colorize'
Selenium::WebDriver::Firefox::Binary.path='C:\soft\Mozilla Firefox\firefox.exe'
case ENV['BROWSER']
  when 'chrome'
    browser = Watir::Browser.new :chrome
  when 'firefox'
    browser = Watir::Browser.new :firefox
end

Given(/^I am on the Guru99 homepage$/)do
  @browser = Watir::Browser.new :firefox
  @browser.goto "http://demo.guru99.com"
end

When(/^enter blank details for register$/) do
  browser.text_filed(:name,"emaiid").set("")
  browser.button(:name,"btnLogin").click
end

Then(/^error email shown$/) do
  puts "Email is Required!".red
  browser.close
end

并返回:

NoMethodError: undefined method `text_filed' for nil:NilClass

在这一行:

browser.text_filed(:name,"emaiid").set("")

我找到了一些引用,我需要编写一个类来调用方法。我尝试过但没有成功。

3 个答案:

答案 0 :(得分:0)

拒绝连接,我不确定,但是" Watir+Cucumber Connection refused"看起来很有用。

复制意大利面:

AfterConfiguration do |config|
   yourCodeStartUp()                    # Put your SETUP code here including the launch of webdriver
   at_exit 
       yourCodeTearDown()               # Put your CLOSING routine here
       puts 'stopped'
   end
end

代码错误是拼写错误,应为browser.text_field(...

答案 1 :(得分:0)

关于你在chrome上观察的问题,听起来你需要更新chromedriver(并确保exe在PATH中)。如果您运行的是chrome v56-58,则需要ChromeDriver 2.29。

关于let array = [1,2,3,[4,5,6,[7,8,9],10,11,12],13,14,15] let sum = 0; function incrementSum(inputArray) { inputArray.forEach(el => { if (el.length) { incrementSum(el); } else { sum += el; } }); } incrementSum(array); console.log(sum);错误,当您调用NoMethodError: undefined method方法(即text_field)时,您会收到拼写错误。

答案 2 :(得分:0)

不,我错了,我有一个旧版的chromedriver。现在它也在chrome中运行。非常感谢你。感谢你的时间!

所以,答案是: 1.更新chromedriver。 2.再次检查您的代码是否有拼写错误。

真的很容易,但花了我很多时间%