从引导警报获取文本

时间:2014-07-13 20:04:37

标签: ruby twitter-bootstrap capybara

我正在尝试测试我的rails应用程序的警报消息。我有以下代码在Twitter Bootstrap中生成:

<div class="alert fade in alert-success">
   <button class="close" data-dismiss="alert">×</button>
   Signed out successfully.
</div>

我要做的就是取出“成功退出”。

目前我有:

def alert_text
   @page.find('div.alert').text
end

但这让我“×成功签名。”

在我的测试中我正在做:

assert_equal "Signed in successfully.", my_page.alert_text

如果我更改断言以包含×,则会收到invalid multibyte char (US-ASCII)错误。是否有一种简单的方法来拉出文本并忽略按钮?我会将文本包装在一个单独的div中,但它是在gem中生成的,所以我不能。

1 个答案:

答案 0 :(得分:0)

由于很难看到其他内容,我会添加一个带有id="signedOut"的自定义元素或特定文本周围的内容,并通过id访问它。它不会破坏你的boostrap样式。

或者,尝试在查找中更具体。您可能正在使用以警报开头的两个类。

def alert_text
   @page.find('div.alert fade in alert-success').text
end

如果您有两个div使用此类,您可以添加到它的末尾或只是进入bootstrap文件夹中的类定义并再添加一个层。 (Bootstrap使用js和css就像我们其他人一样,虽然它可以很快地让事情发生)。