 <p>It would help if you could point to the page where the problem is reproducible, even if that means that you create a page yourself, put it in dropbox and make it public.</p> <p>Did you even try to replicate the problem with the html and ruby code that you have posted? I am asking because the problem is not reproducible with the provided code. Take a look yourself:</p> <pre><code>&gt; browser.ul( :class =&gt;'a').li( :class =&gt;'b').link(:class =&gt;'c').span(:class =&gt;'d') =&gt; #&lt;Watir::Span:0x..fa66c75ff618434cc located=false selector={:class=&gt;"d", :tag_name=&gt;"span"}&gt; &gt; browser.ul( :class =&gt;'a').li( :class =&gt;'b').link(:class =&gt;'c').span(:class =&gt;'d').text =&gt; "text" </code></pre> <p>As far as I understood, you are surprised that when you provide some code, Watir returns an element, but when you want to execute a method on the element, it complains that it can not find the element.</p> <p>Take a closer look at the ruby object that represents element on a page:</p> <pre><code>#&lt;Watir::Span:0x..fa66c75ff618434cc located=false selector={:class=&gt;"d", :tag_name=&gt;"span"}&gt; </code></pre> <p>Please notice <code>located=false</code>. As far as I know, that means that watir creates a ruby object before trying to access it, so the first line of your code does not raise any exceptions. But then when you try to use the element, watir can not find it on the page and complains.</p>