Reposting myself from SO:

+1 to raise this as issue on watir-webdriver as it definitely needs 
> discussion. I use button(:value) in my tests a lot and it actually matches 
> button's value, so there is something behind this.
>

According to code, "button" tag name and "value" are treated specifically. 
According to history, Jari has implemented this when he was making 
watir-webdriver compliant to watirspec, so I suppose it may come from old 
Watir implementation. Nevertheless, it needs to be discussed.

On Saturday, May 18, 2013 12:34:26 AM UTC+7, Chuck van der Linden wrote:
>
> On Thursday, May 16, 2013 6:14:34 AM UTC-7, Dan wrote:
>
>> It doesn't look like it's just Chrome actually.  I got the same results 
>> in Firefox.  Looks like the stackoverflow answer addresses the issue?  If I 
>> change from button type of button to input type of button it works like you 
>> would expect.
>>
>> >> b = Watir::Browser.new :firefox
>> => #<Watir::Browser:0x110337500 url="about:blank" title="">
>> >> b.goto("file:///Users/admin/Desktop/button.html")
>> => "file:///Users/admin/Desktop/button.html"
>> >> b.html
>> => "<html xmlns=\"http://www.w3.org/1999/xhtml\";><head></head><body><button 
>> value=\"hey\" onclick=\"alert('Hello world!')\" type=\"button\">Click 
>> Me!</button></body></html>"
>> >> b.button.value
>> => "hey"
>> >> b.button(:value => "hey").exists?
>> => false
>> >> b.button(:value => "hey").click
>> Watir::Exception::UnknownObjectException: unable to locate element, using 
>> {:value=>"hey", :tag_name=>"button"}
>> from 
>> /Library/Ruby/Gems/1.8/gems/watir-webdriver-0.6.4/lib/watir-webdriver/elements/element.rb:490:in
>>  
>> `assert_exists'
>> from 
>> /Library/Ruby/Gems/1.8/gems/watir-webdriver-0.6.4/lib/watir-webdriver/elements/element.rb:118:in
>>  
>> `click'
>> from (irb):11
>> # Changed from button to input type of button
>> >> b.refresh
>> => []
>> >> b.html
>> => "<html xmlns=\"http://www.w3.org/1999/xhtml\";><head></head><body><input 
>> type=\"button\" value=\"hey\" onclick=\"alert('Hello world!')\" />Click 
>> Me!</body></html>"
>> >> b.button(:value => "hey").exists?
>> => true
>>
>>  
> This is likely because for the input tag of type button, there was no 
> separate text (at least i never see examples of this) the value attribute 
> determined the text that was displayed for the button.. so for that type of 
> element  value=text  The button tag is a lot more robust but seems to be 
> used less often (perhaps due to (misguided?)advice about 
> browser compatibility issues?) 
>
> But the actual button tag, the value and the text are two different 
> things, and you may need to specifically use one or the other to select the 
> element  A great example here might be il8n issues, where it's easier for 
> scripting code to have a consistent value returned by a button, but you may 
> want to display different text based on a language setting (e.g. a 
> bilingual site)  In that case you may also want your automation to identify 
> by the value, as it is predictable.
>
> It seems to me on that basis alone, we ought to be able to predictably 
> select a 'button' tag by its value
>  
>
>> On Wednesday, May 15, 2013 5:35:12 PM UTC-4, Chuck van der Linden wrote:
>>>
>>> See this SO issue for HTML sample, code samples tried in IRB
>>>
>>>   
>>> http://stackoverflow.com/questions/16574999/watir-webdriver-unable-to-identify-button-by-value
>>>
>>> the short of it.  I've got HTML like
>>>
>>>    <button type="button" class="btn fb-user-type" name="fbRadios" 
>>> value="is_agent" style="">An Agent</button>
>>>
>>>  When I try to identify the button by class, or text, it works, but by 
>>> value  such as 
>>>
>>>     b.button(:value => "is_agent").exists?
>>>
>>> fails  (that returns false, most other stuff returns the typical cannot 
>>> be located message)
>>>
>>> what the heck?  shouldn't this be working?   (Chrome on a Mac) 
>>>
>>

-- 
-- 
Before posting, please read http://watir.com/support. In short: search before 
you ask, be nice.

[email protected]
http://groups.google.com/group/watir-general
[email protected]

--- 
You received this message because you are subscribed to the Google Groups 
"Watir General" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to