Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 我如何与cucumber&;韦伯拉特公司;selenium:选择器/标记在响应中正好存在两次?_Ruby On Rails_Regex_Selenium_Cucumber_Webrat - Fatal编程技术网

Ruby on rails 我如何与cucumber&;韦伯拉特公司;selenium:选择器/标记在响应中正好存在两次?

Ruby on rails 我如何与cucumber&;韦伯拉特公司;selenium:选择器/标记在响应中正好存在两次?,ruby-on-rails,regex,selenium,cucumber,webrat,Ruby On Rails,Regex,Selenium,Cucumber,Webrat,我对cucumber和webrat使用了以下步骤定义,一切都很好: Then /^I should see "([^\"]*)" worker in the workerlist/ do |number| response.should have_selector("td.worker_name", :count=>number) end 现在我转到selenium,have_选择器“不知何故”不再采用:count参数。我发现以下错误: ArgumentError: wrong n

我对cucumber和webrat使用了以下步骤定义,一切都很好:

Then /^I should see "([^\"]*)" worker in the workerlist/ do |number|
   response.should have_selector("td.worker_name", :count=>number)
end
现在我转到selenium,have_选择器“不知何故”不再采用:count参数。我发现以下错误:

ArgumentError: wrong number of arguments (2 for 1)   
./features/step_definitions/worker_generation_steps.rb:15:in `have_selector'
接下来,我尝试使用assert_contain,但找不到检查确切数字的正则表达式。不幸的是,如果“class=“worker\u name”的数量小于预期数量,则以下步骤定义将通过

Then /^I should see "([^\"]*)" worker in the workerlist/ do |number|
  assert_contain (/((.*)(class="worker_name"))#{number}/m)
end
我的问题是:

1.)在我的示例中,“td.worker_name”出现了很多次,我如何检查最简单的方法

2.)如果无法绕过正则表达式:我如何重写上面的正则表达式,以便它检查“class=”worker_name“的确切数目


非常感谢

我没有Ruby或Webrat的经验,但我会这样做

    begin
        assert_equal "2", @selenium.get_xpath_count("//td[@class='worker_name']")
    rescue Test::Unit::AssertionFailedError
        @verification_errors << $!
开始
断言等于“2”,@selenium.get\u xpath\u计数(//td[@class='worker\u name']))
救援测试::单元::断言失败错误

@验证错误感谢AutomatedTester的回答,我找到了以下有效解决方案:

Then /^I should see "([^\"]*)" worker in the workerlist/ do |number|
    response.selenium.get_xpath_count("//td[@class='worker_name']").to_i.should be(number.to_i)
end
Webrat::Selenium:Matchers不直接支持get\u xpath\u count,但我可以通过底层的Selenium api访问它