<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><o:SmartTagType
 namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="City"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
 name="place"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
 name="PersonName"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:blue;
        text-decoration:underline;}
span.E-mailStijl19
        {mso-style-type:personal-reply;
        font-family:Arial;
        color:navy;}
@page Section1
        {size:595.3pt 841.9pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.Section1
        {page:Section1;}
-->
</style>

</head>

<body lang=NL link=blue vlink=blue>

<div class=Section1>

<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'>Brett,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'>Basically what I have
done is make <st1:City w:st="on"><st1:place w:st="on">AJAX</st1:place></st1:City>
<st1:PersonName w:st="on">test</st1:PersonName>ing just as &#8220;easy&#8221;
as <st1:PersonName w:st="on">test</st1:PersonName>ing pages doing postbacks. To
make this work I removed the need to code explicitly that the <st1:PersonName
w:st="on">test</st1:PersonName> needs to wait until some control is or is not
there. I&#8217;m not that good at coding ruby, but from reading the posts on
the mailing lists I understand you need to write something like:<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'>wait_until(ie.textfield(:id,
&#8220;textfieldid&#8221;).exists, 30)<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'>ie.textfield(:id, &#8220;textfieldid&#8221;).set(&#8220;waited
until the textfield existed&#8221;)<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'>To make this work with WatiN
you code:<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'>ie.TextField(Find.ById(&#8220;elementid&#8221;)).TypeText(&#8220;waited
until the textfield existed&#8221;);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'>One could also code this
if you need a longer timeout then 30 seconds<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'>ie.TextField(Find.ById(&#8220;elementid&#8221;)).WaitUntilExists(60);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'>ie.TextField(Find.ById(&#8220;elementid&#8221;)).TypeText(&#8220;waited
until the textfield existed&#8221;);<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'>I think users of watir/watin
don&#8217;t always realise they use <st1:City w:st="on"><st1:place w:st="on">AJAX</st1:place></st1:City>
and how that influences their <st1:PersonName w:st="on">test</st1:PersonName>
code. That&#8217;s why I moved the call to WaitUntilExists(30) (wait_until(check,
30)) into the WatiN framework (since it doesn&#8217;t impact <st1:PersonName
w:st="on">test</st1:PersonName>s with pages that don&#8217;t use <st1:City
w:st="on"><st1:place w:st="on">AJAX</st1:place></st1:City>, performance wise). This
might be the reason people experience WatiN having better <st1:City w:st="on"><st1:place
 w:st="on">AJAX</st1:place></st1:City> support.<o:p></o:p></span></font></p>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 color=black face=Arial><span lang=EN-GB style='font-size:10.0pt;
font-family:Arial;color:black'>Jeroen <o:p></o:p></span></font></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 color=black face=Arial><span lang=EN-GB style='font-size:10.0pt;
font-family:Arial;color:black'>http://watin.sourceforge.net</span></font><o:p></o:p></p>

</div>

<div>

<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>

<hr size=2 width="100%" align=center tabindex=-1>

</span></font></div>

<p class=MsoNormal><b><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>Van:</span></font></b><font size=2
face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'>
wtr-development-bounces@rubyforge.org
[mailto:wtr-development-bounces@rubyforge.org] <b><span style='font-weight:
bold'>Namens </span></b>Charley Baker<br>
<b><span style='font-weight:bold'>Verzonden:</span></b> woensdag 25 april 2007
20:49<br>
<b><span style='font-weight:bold'>Aan:</span></b> Discussion of Watir versions
under development<br>
<b><span style='font-weight:bold'>Onderwerp:</span></b> Re: [Wtr-development]
Fwd: Watir Stability Issues</span></font><o:p></o:p></p>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal style='margin-bottom:12.0pt'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>I've started doing some
work on Ajax <st1:PersonName w:st="on">test</st1:PersonName>s. So far I'm using
wait_until to poll for elements to exist as the DOM changes based on various
events triggering. So far so good from what I've seen. I'm spending some time
to read up on the links on the Watin site and downloaded the project with
source.&nbsp; <br>
<br>
&nbsp; One issue they seem to have overcome is the cross site scripting problem
mentioned in a previous post or Jira ticket. Polling for controls might be
something they do across the board for better Ajax support. It might be
something to consider for Watir as the world moves to Web 2.0.<br>
<br>
&nbsp; On a sidenote, I'm looking at <st1:PersonName w:st="on">test</st1:PersonName>ing
IE7 and browser tabs. I haven't found any updated documentation on IE's com
model on the MSDN site that will allow me to access tabs. Anyone come across
this? It's also going to be an issue with FireFox, that I'll delay until I
abstract the browser access enough to run any of four drivers - ie, ff, safari,
and selenium. <br>
<br>
-Charley <o:p></o:p></span></font></p>

<div>

<p class=MsoNormal><span class=gmailquote><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>On 4/25/07, <b><span style='font-weight:bold'>Bret
Pettichord</span></b> &lt;<a href="mailto:bret@pettichord.com">bret@pettichord.com</a>&gt;
wrote:</span></font></span><o:p></o:p></p>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>Adam Esterline recently reported some stability issues with Watir on
his blog.<br>
<br>
<a href="http://adamesterline.com/2007/04/23/watin-watir-and-selenium-reviewed/"
target="_blank">http://adamesterline.com/2007/04/23/watin-watir-and-selenium-reviewed/
</a><br>
<br>
Because of them, he decided to use Watin instead, which did not have these
problems. I asked him for more information, and he provided the following. This
is something that I would like to understand better.<br>
<br>
Bret<br>
<br>
---------- Forwarded message ----------<br>
<span class=gmailquote>From: <b><span style='font-weight:bold'>Adam Esterline</span></b>
&lt;<a href="mailto:adam@esterlines.com" target="_blank"> adam@esterlines.com</a>&gt;</span><br>
<span class=gmailquote>Date: Apr 25, 2007 6:33 AM </span><br>
<span class=gmailquote>Subject: Watir Stability Issues</span><br>
<span class=gmailquote>To: <a href="mailto:bret@pettichord.com" target="_blank">bret@pettichord.com</a></span><br>
<br>
Bret,<br>
<br>
Thanks for your comment on my blog. <br>
<br>
We were using Watir 1.4.1.&nbsp;&nbsp;&nbsp;&nbsp;We also tried upgrading to
1.5? and the<br>
same problem existed.<br>
<br>
We saw that accessing an element while the browser was busy caused the<br>
<st1:PersonName w:st="on">test</st1:PersonName> to hang.&nbsp;&nbsp; This
happened frequently for us as our site has lots<br>
of ajax calls.<br>
<br>
There are two differences between Watir and WatiN that really made the <br>
difference for our team.<br>
<br>
1.&nbsp;&nbsp;Problem described above, WatiN does not seem to have this
problem.<br>
&nbsp;&nbsp;May because the use a STA - check this link out for more<br>
information: <a href="http://watin.sourceforge.net/apartmentstateinfo.html"
target="_blank">http://watin.sourceforge.net/apartmentstateinfo.html</a>.<br>
2.&nbsp;&nbsp; WatiN waits and tries again if it cannot find the element on the<br>
page.&nbsp;&nbsp; This makes it much easier to code <st1:PersonName w:st="on">test</st1:PersonName>s.<br>
<br>
I am not saying that WatiN is perfect, but these two things help us <br>
keep our repeatable/reliable.<br>
<br>
Below is an example of a watir <st1:PersonName w:st="on">test</st1:PersonName>
we wrote.&nbsp;&nbsp; Not sure that it will<br>
help, but I thought I would pass it along.<br>
<br>
If you have any other questions/comments, please let me know. <br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
open_browser_to_corporate_home_page<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;beginning_count
= result_count<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;click_link
'Architectural Style'<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert_browse_section_is_active
'Architectural Style' <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert_none_of_the_check_boxes_is_selected<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert_count_equals
beginning_count<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;click_check_box
'Contemporary'<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep
2<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;after_contemporary_count
= result_count <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert_count_less_than
beginning_count<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert_browse_section_contains
'Architectural Style',<br>
'Contemporary'<br>
<br>
<span class=sg>--</span><br>
<span class=sg>Adam Esterline</span><br>
<span class=sg><a href="http://adamesterline.com/" target="_blank">http://adamesterline.com/</a></span><br>
<br>
_______________________________________________<br>
Wtr-development mailing list<br>
<a href="mailto:Wtr-development@rubyforge.org">Wtr-development@rubyforge.org </a><br>
<a href="http://rubyforge.org/mailman/listinfo/wtr-development" target="_blank">http://rubyforge.org/mailman/listinfo/wtr-development</a><o:p></o:p></span></font></p>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

</div>

</body>

</html>