自动化网页按钮点击红宝石

时间:2015-12-06 14:52:11

标签: ruby-on-rails ruby watir-webdriver

我只想在主页上自动点击按钮。我正在使用以下代码片段

Given /^I press "(.*)"$/ do |action|
  browser.button(:text => action).click
end

我的功能文件包含以下内容

Scenario: Default Search 
    Given I press "Search" 

执行功能文件时,收到以下错误

*** WARNING: You must use ANSICON 1.31 or higher (https://github.com/adoxa/ansicon/) to get coloured output on Windows
Ambiguous match of "I press "Search"":

C:/Users/............test/features/step_definitions/Moorings.rb:8:in `/^I press "(.*)"$/'

1 个答案:

答案 0 :(得分:0)

哈...你在该页面(www.moorings.com)上有3次出现文本"Search",因此watir驱动程序并不真正知道要点击哪一个。

正如我上面提到的,尝试使用一些独特的东西,可能是id,如下所示:

#step definition
Given /^I press "(.*)", with id "(.*)"$/ do |text, id|
  browser.button(id: id, :text => text).when_present.fire_event :click
end

#feature
Scenario: Default Search 
    Given I press "Search", with id "edit-search" 

请注意,我已经为要搜索的属性添加了另一个id约束。

另请注意,我添加了一层额外的支票:.when_present。这将确保测试在尝试单击之前等待指定的按钮出现在页面上。然而,附加约30秒的超时。