首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找包含链接的Webrat标签

查找包含链接的Webrat标签
EN

Stack Overflow用户
提问于 2009-09-24 20:44:57
回答 2查看 1.6K关注 0票数 1

因此,我使用黄瓜进行BDD,并从数据库中填充了一个带有复选框的表单。复选框的标签包含超链接。到目前为止,还不太异国情调(请注意,这是HAML而不是Erb,但对于任何Rails人员来说,它都应该足够可读性):

代码语言:javascript
复制
I would like my donation to support:
%br
- for podcast in @podcasts
  = check_box_tag "donation[podcast_ids][]", podcast.id, true
  = donation.label "donation[podcast_ids][]", link_to(podcast.name, podcast.url), :value => podcast.id
  %br

问题是,在我的Cucumber特性中,我不知道如何找到复选框来检查它。故事的相关部分如下:

代码语言:javascript
复制
  Scenario: Happy path
    Given I am on the home page
    When I fill in "My email address" with "john@example.org"
     # Skipped for brevity...
     And I check the "Escape Pod" podcast
     And I check the "PodCastle" podcast
     And I press "I'm ready!"
    Then I should see "Thank you!"
     And there should be 2 podcast donation records

如果我使用的是裸webrat_steps.rb文件,则会得到以下错误:

代码语言:javascript
复制
Could not find field: "Escape Pod" (Webrat::NotFoundError)

我很确定这是因为link_to()方法,我用它来使“逃逸Pod”成为到实际网站的超链接。但是,我无法从Cucumber步骤轻松地访问link_to,也无法找到任何合理的方法将Webrat指向右边的复选框,除非在我的步骤中使用大量超链接代码(这使得它非常脆弱)。

我的BDD在这一点上停滞不前了。我不想仅仅因为很难测试就把链接取出来。感觉应该不难测试。Webrat只是限制了我可以传递给checks()方法的内容。有人能对此提出一个优雅的答案吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-25 00:43:00

简单的回答是使用field_by_xpath或其他Webrat::Locator方法来选择要在步骤中操作的元素:

代码语言:javascript
复制
When(/^I check the "(.+?)" podcast$/) do |name|
  check(field_by_xpath("//label/a[.=#{name}]")
end

您可能需要稍微使用这个xpath,或者使用field_by_id。记住,它正在查找,得到标记的html id,而不是数据库中的id。

票数 2
EN

Stack Overflow用户

发布于 2010-08-08 17:32:14

您能在出现问题的复选框(Es)附近的呈现页面中张贴HTML外观吗?有时你得玩命名场地..。我在登录表单上遇到了各种各样的麻烦.最后我做了这个:

代码语言:javascript
复制
<%= submit_tag 'Enter', {:id => "login_button"} %>

因此,下列措施发挥了作用:

代码语言:javascript
复制
Given /^I am logged in as admin$/ do
    visit login_path
    fill_in "login", :with => "admin"
    fill_in "password", :with => "password"
#    click_button "login_button"
    click_button
end

我知道这不是一个复选框的例子,但也许修改你的名字/id/etc会有效

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1474045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档