When selecting an option from a select list in a modal dialog, an exception 
occurs regarding an undefined method 'focus' for Watir::ModalDialog.

>From the code, it looks like the problem will occur whenever the focus method 
>is called for an element within a modal dialog. The focus method calls focus 
>for its container. The ModalDialog does not have a focus method defined and 
>therefore throws an exception when it is the container.

For example, given a page with a modal dialog:

````html
<html>
  <body>
    <h1>Modal Dialog Launcher</h1>
      <input type="button" value="Launch Dialog" 
onclick="window.showModalDialog('test.htm');"/>
  </body>
</html>
````

and the page that is displayed in the modal dialog (test.htm):

````html
<html>
  <body>
    <select id="my_select">
      <option>Honda</option>
      <option>Toyota</option>
    </select>
  </body>
</html>

````

The following script will throw an exception when selecting an option from the 
select list. Note that within the select method, the focus method for the modal 
dialog gets called.

````ruby
require 'watir-classic'
browser = Watir::Browser.new
browser.goto('file:///C:/Users/jko/Desktop/modal_dialog.html')
browser.button.click_no_wait
browser.modal_dialog.select_list.select('Toyota')
#=> 
C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-4.0.1/lib/watir-classic/element.rb:207:in
 `focus': undefined method `focus' for #<Watir::ModalDialog:0x2d5c700> 
(NoMethodError)
#=>   from 
C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-4.0.1/lib/watir-classic/element.rb:207:in
 `focus'
#=>   from 
C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-4.0.1/lib/watir-classic/element.rb:207:in
 `focus'
#=>   from 
C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-4.0.1/lib/watir-classic/element.rb:207:in
 `focus'
#=>   from 
C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-4.0.1/lib/watir-classic/input_elements.rb:166:in
 `change_selected'
#=>   from 
C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-4.0.1/lib/watir-classic/input_elements.rb:124:in
 `block in select'
#=>   from 
C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-4.0.1/lib/watir-classic/element.rb:477:in
 `perform_action'
#=>   from 
C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-4.0.1/lib/watir-classic/input_elements.rb:123:in
 `select'
#=>   from 
C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-4.0.1/lib/watir-classic/input_elements.rb:47:in
 `each'
#=>   from 
C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-4.0.1/lib/watir-classic/input_elements.rb:47:in
 `block in select'
#=>   from 
C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-4.0.1/lib/watir-classic/element.rb:477:in
 `perform_action'
#=>   from 
C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-4.0.1/lib/watir-classic/input_elements.rb:42:in
 `select'
#=>   from stuff.rb:21:in `<main>'
````

---
Reply to this email directly or view it on GitHub:
https://github.com/watir/watir-classic/issues/64
_______________________________________________
Wtr-development mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/wtr-development

Reply via email to