无法使用硒黄瓜红宝石运行自定义步骤

时间:2015-10-17 16:59:36

标签: ruby selenium selenium-webdriver cucumber automated-tests

我正在使用。编写桌面Web自动化测试 selenium cucumber ruby。 我的测试包括预定义和自定义步骤。

但是,由于自定义步骤导致错误,我的测试无法运行。

我运行的功能文件:

Feature: Login a customer
    Scenario: Go in a call
        Given I navigate to <url>
                  ...
        When I submit the form with id "custSearchSimple"
        ....
        And I wait for 5 sec
        Then element having id "accNumber" should be present

当我提交I​​D为“custSearchSimple”的表单时,这是一个自定义步骤。 此步骤在custom_step.rb中定义。我使用了Selenium Cucumber Ruby API的submit命令。 custom_step.rb是以下文件:

    require 'selenium-cucumber'

    # Do Not Remove This File
    # Add your custom steps here
    # $driver is instance of webdriver use this instance to write your custom code

   #firefox browser instantiation
   driver = Selenium::WebDriver.for :firefox
   driver.navigate.to "https://localhost/telebet"

    When(/^I submit the form with id "(.*?)"$/) do |arg1|
         element= driver.submit(:id,"#{arg1}")
    end

当我通过运行cucumber features / name_of_the_file.feature运行功能文件时,我收到NoMethodError错误:

When I submit the form with id "custSearchSimple"                 # features/step_definitions/custom_steps.rb:12
  private method `submit' called for #<Selenium::WebDriver::Driver:0x94c4bde4bdff4d6 browser=:firefox> (NoMethodError)

我找不到使用Selenium Cucumber Ruby API编写自定义步骤的任何示例。我怀疑我可能已经省略了selenium web driver ruby​​的一些命令。我找不到的东西遗失了。有谁知道我为什么会收到这个错误?

1 个答案:

答案 0 :(得分:0)

也许我在这里感到困惑,但是:

When(/^I submit the form with id "(.*?)"$/) do |arg1|
  submit_form arg1
end

def submit_form(form_id)
  submit("id", form_id)
end

会做你想要的吗? submit_form不是一个黄瓜步骤,它是一种红宝石方法 - 可能是你获得Cucumber::UndefinedDynamicStep的原因。