Есть ли способ установить текстовое поле с помощью watir-webdriver, используя селекторы css для доступа к текстовому полю?

Я хотел бы установить текстовое поле с помощью watir-webdriver, используя селекторы css для доступа к текстовому полю, но он жалуется, что метод set не определен для Watir::HTMLElement:

$ ruby -v
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.2.0]

$ gem -v
1.8.15

$ gem list selenium-webdriver
*** LOCAL GEMS ***
selenium-webdriver (2.17.0)

$ gem list watir-webdriver
*** LOCAL GEMS ***
watir-webdriver (0.4.1)

$ irb
> require "watir-webdriver"
 => true 

> browser = Watir::Browser.new :firefox
 => #<Watir::Browser:0x787eb29124fb7658 url="about:blank" title=""> 

> browser.goto "google.com"
 => "http://www.google.com.mx/" 

> browser.element(:css => "input[name=q]").set "test"
NoMethodError: undefined method `set' for #<Watir::HTMLElement:0x007fe39b2680c8>
    from /Users/zeljko/.rvm/gems/ruby-1.9.3-p0/gems/watir-webdriver-0.4.1/lib/watir-webdriver/elements/element.rb:317:in `method_missing'
    from (irb):24
    from /Users/zeljko/.rvm/rubies/ruby-1.9.3-p0/bin/irb:16:in `<main>'

Среда: Mac OS X 10.7.2, Firefox 9.0.1.


person Željko Filipin    schedule 25.01.2012    source источник


Ответы (1)


Используйте элемент # to_subtype

 browser.element(:css => "input[name=q]").to_subtype.set "test"

Или почему бы не использовать селектор Watir?

 browser.input(:name => "q").set "test"    

На самом деле вы не используете возможности Watir API, используя: xpath или: css.

person jarib    schedule 25.01.2012
comment
Это долгая история. Я расскажу вам подробности за кружкой пива. :) - person Željko Filipin; 25.01.2012
comment
На этом проблемы не заканчиваются: browser.element(:css => "textarea").to_subtype.set "text" возвращает NoMethodError: undefined method 'set' for #<Watir::TextArea:0x007fb73b21cbc8>. - person Željko Filipin; 25.01.2012
comment
Создан билет для проблемы с текстовым полем: github.com/watir/watir-webdriver/issues/118 < / а> - person Željko Filipin; 25.01.2012