Hey all, <br><br>I am currently working on coming up w/ an easy to use, developer-centric web testing framework to test a J2EE app with. (I have 3 rails apps in production, love rspec, and am currently at a java shop). <br>
<br>I&#39;ve looked at selenium, and it just doesn&#39;t seem like it is ready for prime time, and the target audience is developers.&nbsp;&nbsp; So, having said that, does the rspec community want a &quot;functional&quot; test framework?&nbsp; Are you happy w/ selenium, and is it working?
<br><br>Unless someone convinces me of selenium, I&#39;m planning on taking the basics and concepts of rspec, and focus it more towards testing web applications, and am happy to contribute.&nbsp; My company is totally cool with contributing to open source projects if it makes sense. 
<br><br>Any thoughts or suggestions?&nbsp; Here is a sketch of what I think I&#39;d like:<br clear="all"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">server &quot;<a href="http://localhost:8080">
http://localhost:8080</a>&quot; do </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp; </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">
&nbsp; test &#39;/&#39; do </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; page.status.should_be &quot;200&quot;</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">
&nbsp;&nbsp;&nbsp; page.should_have :image, &quot;logo.gif&quot;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">
&nbsp;&nbsp;&nbsp; page.should_have :string, &quot;Copyright 2006-Present SomeCo, Inc. All rights reserved.&quot;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">
&nbsp;&nbsp;&nbsp; page.should_have :div, :id =&gt; &#39;copyright&#39;</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">
&nbsp;&nbsp;&nbsp; page.should_include :css, &#39;default.css&#39;</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; page.should_have.no_broken_links
</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; page.should_have.at_least.3 :div, :class =&gt; &quot;bbxBody&quot;</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; page.should_have.at_most.6 :div, :class =&gt; &quot;someClassName&quot;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">
&nbsp;&nbsp;&nbsp; </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; # page.[name_of_form]_form.</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">
&nbsp;&nbsp;&nbsp; page.search_form.submit :name =&gt; &quot;California&quot; do </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result.status.should_be :success</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result.should_have :image, &quot;logo.gif&quot;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result.url.should_contain
 &quot;some_page.html&quot;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; end</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">
&nbsp;&nbsp;&nbsp; </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; page.should_have :div, :class =&gt; &#39;something else&#39;</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; page.should_have :div, :id =&gt; &#39;foo&#39;, :class =&gt; &#39;bar&#39;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">
&nbsp;&nbsp;&nbsp; page.should_have &#39;/div[1]/div[2]/td&#39;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp; end</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">
&nbsp; </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp; test &#39;/some/url.html?id=35&#39; do </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">
&nbsp;&nbsp;&nbsp; page.should_redirect :to =&gt; &#39;/foobar.html&#39;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp; end</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">end</span><br><br>-- <br>Tim Tischler<br><a href="mailto:ttischler@homeaway.com">ttischler@homeaway.com</a><br><a href="mailto:tischler@purplecoffeecup.com">tischler@purplecoffeecup.com
</a><br>512-565-4750<br>AIM:tjtischler512