`

关于cucumber中webrat 模拟浏览器事件操作

阅读更多
一些资源

- http://gitrdoc.com/brynary/webrat
- http://groups.google.com/group/webrat
- http://webrat.lighthouseapp.com/
- http://github.com/brynary/webrat
关于触发link

可以通过文本 title属性,和id属性]
<a href="/signup" title="Sign up" id="signup_link">Click here to
  join!</a>
  click_link "Click here to join!" # substring text
  click_link /join/i               # regexp text
  click_link "Sign up"             # substring title
  click_link /sign.*up/i           # regexp title
  click_link /signup.*link/i       # regexp id
  click_link "signup_link"         # exact id


webrat的源码定义
    def click_link(text_or_title_or_id, options = {})
      find_link(text_or_title_or_id).click(options)
    end



而表单的输入框,可以通过id name属性或者label的inner text属性定位,例子如下:

输入框包括text fields, password fields和text areas

 
#<label for="user[email]">Enter your Email</label><input type="text"
  name="user[email]" id="user_name">
  fill_in "user_email", :with => "good@example"      # exact id
  fill_in /user.*email/, :with => "good@example"     # regexp id
  fill_in "user[email]", :with => "good@example"     # substring name
  fill_in /user[.*mail.*]/, :with => "good@example"  # substring name
  fill_in "Email", :with => "good@example.com"       # substring label text
  fill_in /enter your email/i, :with => "good@example.com" # regexp label text

对于隐藏字段的设定
  # Hidden fields can be set
  set_hidden_field 'user[l337_hax0r]', :to => 'true'


下拉菜单可以通过文本,name属性,label text属性来选中

  # Select options can be 'selected' by inner text (an exact String or a Regexp
  to match). It can optionally be selected from a particular select field, using
  the usual id, name, or label text.
  select "Free account"
  select "Free account", :from => "Account Types"
  select "Free account", :from => "user[account_type]"
  select "Free account", :from => "user_account_type"


操作多选框
  # Check boxes can be 'checked' and 'unchecked'
  check 'Remember me'
  uncheck 'Remember me'


操作单选框
  # Radio buttons can be choosen, using the usual label text, name, or id.
  choose "Yes"

  click_button "Register"




   # check for text in the body of html tags
   # can be a string or regexp
  assert_contain("BURNINATOR")
  assert_contain(/trogdor/i)
  assert_not_contain("peasants")

  # check for a css3 selector
  assert_have_selector 'div.pagination'
  assert_have_no_selector 'form input#name'


判定页面是否有文字

  # check for text in the body of html tags
  # can be a string or regexp
  # Matchers are verbs used with auxillary verbs should, should_not, etc.
  response.should contain("BURNINATOR")
  response.should contain(/trogdor/i)
  response.should_not contain("peasants")

  # check for a css3 selector
  response.should have_selector('div.pagination')
  response.should_not have_selector('form input#name')


在范围内的界定,老猪上文已经提到selenium不支持
  # selectors syntax is defined here: http://www.w3.org/TR/css3-selectors/
  within 'div.pagination' do |scope|
    scope.click_link "1"
  end

  within '.shows' do |scope|
    scope.should contain("NFL")
    # unfortunately, assertions don't support this currently
  end

  within 'form[name="search"] select[name="type"]' do |scope|
    scope.should have_selector 'option[value="blah"]'
    scope.should have_selector 'option[value="gah"]'
    scope.should have_selector 'option[value="eep"]'
    scope.should have_selector 'input:only-of-type'
    scope.should have_selector 'input[name="query"]'
    scope.should have_selector 'input[type="text"]'
  end

0
0
分享到:
评论
2 楼 夜鸣猪 2010-09-20  
orcl_zhang 写道
view也测?

acceptance test
1 楼 orcl_zhang 2010-09-20  
view也测?

相关推荐

    banana-nagios:Nagios的系统测试插件,带有Cucumber + Webrat + Mechanize + Net :: SSH

    Cucumber纳吉奥斯 Cucumber-nagios允许您编写Web应用程序的高级行为测试,并将结果插入Nagios。 正如布拉德利·泰勒(Bradley Taylor): “Instead of writing boring monitoring plugins from scratch, you can ...

    cucumber_配置指南

    Cucumber 是一个流行的 Behavior Driven Development (BDD) 工具,主要在软件开发中用于编写可执行的规范。它支持多种编程语言,包括 Ruby,而这里的配置指南针对的是使用 Ruby 的环境。以下是对配置过程的详细解释...

    Maven 搭建cucumber 简单示例

    Maven 搭建cucumber 简单示例 1.新建Maven 项目 2.Eclipse安装 cucumber 插件:Help-&gt;Install New Software-&gt;Add name:cucumber location:http://cucumber.github.com/cucumber-eclipse/update-site 3.导入示例项目,...

    cucumber安装

    - 在命令提示符窗口中输入 `gem install cucumber` 来安装 Cucumber。 2. **安装 Watir-Webdriver**: - 运行命令 `gem install watir-webdriver` 安装 Watir-Webdriver 库。该库用于通过 Webdriver 控制浏览器...

    cucumber.jar

    Cucumber.jar是一个关键组件,它是自动化测试框架Cucumber的核心库,用于支持行为驱动开发(BDD)中的测试执行。这个JAR文件包含了运行Cucumber测试所必需的类和资源,使得开发者和非技术人员可以通过自然语言编写可...

    SeleniumCucumberAutomation:基于Cucumber的Web自动化的示例测试项目

    在"SeleniumCucumberAutomation"项目中,Cucumber与Selenium WebDriver结合,用于模拟用户在Web浏览器中的交互。Selenium WebDriver是一个自动化测试工具,它可以控制不同的浏览器,并执行如点击按钮、填写表单等...

    The Cucumber book (English Version)

    ### 关于《Cucumber书》(英文版)的知识点概览 #### 一、Cucumber的概念与作用 根据书名及描述,“Cucumber”并非一个简单的应用测试工具,而是一种沟通理念,它能够有效地帮助开发者与客户之间建立更加清晰的...

    自动化生成支持cucumber,Rspec的Rails(持续更新中)

    然后,可以按照`build.bat`脚本的逻辑逐步操作,了解Cucumber和RSpec在Rails环境中的配置和使用方法。同时,熟悉`.feature`和步骤定义文件的结构,以及如何编写有效的测试用例,是提升自动化测试能力的关键。

    Cucumber Recipes

    Dan North作为行为驱动开发的创始人和RSpec故事运行器(Cucumber的前身)的作者,在推荐语中提到了“从一般的建议到关于测试嵌入式Arduino硬件项目的疯狂行为,他们能够在一个小空间内覆盖巨大的范围。” 这暗示了书...

    cucumber.zip

    **Selenium** 是一个用于Web应用程序的自动化测试工具,它可以模拟用户与浏览器的交互。在Cucumber和JUnit的组合中,Selenium扮演着实际操作网页的角色,例如点击按钮、填写表单等。通过Page Object模式,Selenium...

    自动化测试平台cucumber框架兼容APP,WEB,API

    在Web测试中,Cucumber可以与Selenium WebDriver结合,编写基于浏览器的自动化测试。Selenium WebDriver提供了一套API,用于控制浏览器的行为,而Cucumber则负责将这些行为转化为业务语境下的测试步骤。 **在API...

    nightwatch-cucumber, Nightwatch.js的Cucumber.js 插件.zip

    nightwatch-cucumber, Nightwatch.js的Cucumber.js 插件 cucumber http://mucsi96.github.io/nightwatch-cucumber 问:问问题 。这里模块支持将bdd样式方法用于 跨浏览器 测试:使用 Gherkin 语

    intelJ Idea cucumber java Demo

    本教程将详细介绍如何在IntelJ IDEA中搭建Cucumber Java的开发环境并创建一个简单的Demo。 **1. 安装Cucumber for Java插件** 首先,打开IntelJ IDEA,进入设置(Preferences on macOS, Settings on Windows/Linux...

    cucumber-java-skeleton, 这是 Cucumber JVM使用Java最简单的可能设置.zip

    cucumber-java-skeleton, 这是 Cucumber JVM使用Java最简单的可能设置 cucumber 这是使用Java实现 Cucumber的最简单的构建脚本。 没有什么比web浏览器或者浏览器测试更花哨的了。 这样做的目的是向你展示如何安装和...

    cucumber-core-1.0.12.zip

    【标题】:“cucumber-core-1.0.12.zip”是Cucumber核心库的一个版本,主要用于行为驱动开发(BDD)。 Cucumber是BDD框架的重要组成部分,它允许开发者、测试人员和非技术人员共同协作,通过自然语言来定义软件的...

    cucumber jar包

    使用 cucumber-jvm,Cucumber 的 Java 版本,你可以轻松地将 Cucumber 集成到 Java 应用程序的测试流程中。 在 Java 开发环境中,引入 cucumber.jar 包通常涉及以下步骤: 1. **添加依赖**: 在 Maven 或 Gradle ...

    cucumber-reporting, Cucumber的HTML报告.zip

    cucumber-reporting, Cucumber的HTML报告 发布 pretty Cucumber 报告这是一个用于在Jenkins构建服务器上发布 Cucumber 报告的Java报告发布者。 它发布了漂亮的html报告,图表显示 Cucumbe

Global site tag (gtag.js) - Google Analytics