我想測試一個鏈接的劑量存在於頁面上, 我試圖檢查所有包含的鏈接標籤一樣,嵌套的標籤:水豚和Rails,爲什麼我的鏈接預計會返回一些東西?
response.body.should have_selector("div.page_margins div.page div#nav div.hlist ul li#2")
並正確傳遞,但是,如果我加入鏈接標籤的測試是這樣的:
response.body.should have_selector("div.page_margins div.page div#nav div.hlist ul li#2 a",:text => "Next")
我得到的錯誤:
expected css "div.page_margins div.page div#nav div.hlist ul li#2 a#next_page" with text "Next" to return something
如果我有這樣的have_link測試:
response.body.should have_link("div.page_margins div.page div#nav div.hlist ul li#2 a#next_page")
我得到的錯誤:
expected link "div.page_margins div.page div#nav div.hlist ul li#2 a#next_page" to return something
任何機構可以幫助嗎?我愛軌,但是,我仍然需要一個手測試相處..
編輯
這裏是page.html中,我注意到,在content_for的HTML中的鏈接渲染未呈現收益率
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-type">
<title></title>
<script src="/assets/application.js" type="text/javascript"></script><link href="/assets/application.css" media="screen" rel="stylesheet" type="text/css">
<script type="text/javascript">
//<![CDATA[
var auto_log_off = false;
//]]>
</script><script type="text/javascript">
//<![CDATA[
var student_logged = false;
//]]>
</script><script src="/assets/sessions.js" type="text/javascript"></script><!-- add your meta tags here --><link href="/assets/application_yaml/css/my_layout.css" rel="stylesheet" type="text/css">
<!--[if lte IE 7]> <![endif]--><link href="/assets/application_yaml/css/patch_my_layout.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="page_margins">
<a href="#dialog" name="modal"></a>
<div id="topnav">
<!-- start: skip link navigation -->
<a class="skip" href="#navigation" title="skip link">Skip to the navigation</a>
<span class="hideme">.</span>
<a class="skip" href="#content" title="skip link">Skip to the content</a>
<span class="hideme">.</span>
<!-- end: skip link navigation -->
</div>
<!-- start: skip link navigation -->
<!-- end: skip link navigation -->
<div class="page">
<div id="header">
<h1>Welcome to course builder!!</h1>
<p><a href="/" id="home_link">Home</a></p>
</div>
<div id="nav">
<!-- skiplink anchor: navigation -->
<a id="navigation" name="navigation"></a>
<div class="hlist">
<!-- main navigation: horizontal list -->
<div class="quiz_review_buttons">
<!--
<ul>
<li class="active"><strong>Button 1</strong></li>
<li><a href="#">Button 2</a></li>
<li><a href="#">Button 3</a></li>
</ul>
-->
</div>
<!-- <ul> -->
<!-- <li class="active"><strong>Button 1</strong></li> -->
<!-- <li><a href="#">Button 2</a></li> -->
<!-- <li><a href="#">Button 3</a></li> -->
<!-- <li><a href="#">Button 4</a></li> -->
<!-- <li><a href="#">Button 5</a></li> -->
<!-- </ul> -->
</div>
</div>
<div id="main">
<div id="col1">
<div class="clearfix" id="col1_content">
<!-- add your content here -->
<div class="debug_div">
<p>
<b>
devise/sessions#new
</b>
</p>
</div>
</div>
</div>
<div id="col3">
<div class="clearfix" id="col3_content">
<!-- add your content here -->
<div class="alert" id="notice_alert">You need to sign in or sign up before continuing.</div>
<script type="text/javascript"></script><!-- <div style="clear:both"></div> --><h2>Sign in for student</h2>
<form accept-charset="UTF-8" action="/students/sign_in" class="student_new" id="student_new" method="post">
<div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓"></div>
<div>
<label for="student_email">Email</label><br><input id="student_email" name="student[email]" size="30" type="email" value="">
</div>
<div>
<label for="student_password">Password</label><br><input id="student_password" name="student[password]" size="30" type="password">
</div>
<div>
<input name="student[remember_me]" type="hidden" value="0"><input id="student_remember_me" name="student[remember_me]" type="checkbox" value="1"><label for="student_remember_me">Remember me</label>
</div>
<div><input name="commit" type="submit" value="Sign in"></div>
</form>
<a href="/students/sign_up">Sign up</a><br><a href="/students/password/new">Forgot your password?</a><br>
</div>
<!-- IE Column Clearing -->
<div id="ie_clearing"> </div>
</div>
</div>
<div id="footer">
Layout based on
<a href="http://www.yaml.de/">YAML</a>
</div>
</div>
</div>
</body>
</html>
作爲該水豚被搜索HTML,它的這個路徑中: div.page_margins div.page股利#導航div.hlist UL李#2 怎麼來的水豚是能夠找到李#2以上,但可以」在li#2裏找到'a'? response.body.should have_selector(「div.page_margins div.page div#nav div.hlist ul li#2」)正常工作,這導致我正在測試的鏈接的父母 是否存在有關搜索的限制在水豚的鏈接?最大嵌套深度? – simo 2012-01-15 07:29:59
我注意到page.html中沒有包含通過content_for呈現的html,因此,Capybara無法找到鏈接,因爲它在content_for html中,所以,任何想法?我在上面添加了一個編輯,向您顯示帶有空收益的page.html – simo 2012-01-16 04:50:59