2012-01-25 23 views
2

我想使用CSS設置選擇訪問文本字段的Watir-的webdriver與文本字段,但它抱怨梅託德set沒有爲Watir::HTMLElement定義:有沒有辦法使用css選擇器來設置文本字段與watir-webdriver訪問文本字段?

$ 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。

回答

4

使用元素#to_subtype

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

或者爲什麼不使用的Watir選擇?

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

你並沒有真正利用Watir API的強大功能:xpath或:css。

+0

這是一個很長的故事。我會給你一個啤酒的細節。 :) –

+0

問題沒有結束:'browser.element(:css =>「textarea」)。to_subtype.set「text」'returns'NoMethodError:未定義的方法'set'for# 。 –

+0

textarea問題的創建票證:https://github.com/watir/watir-webdriver/issues/118 –