2009-11-04 83 views
1

我有一個簡單的登錄表單,有2個文本字段和一個按鈕。 我可以設置用戶名字段的文本就好了。 但是,當我設置密碼字段時,表單會自動提交,並且出現錯誤。watir:如何在不提交表單的情況下在表單中輸入值?

從IRB:

irb(main):008:0> ie.text_field(:name, "j_password").set("password") 
WIN32OLERuntimeError: unknown property or method `value' 
    HRESULT error code:0x80070005 
     Access is denied. 
     from c:/ruby/lib/ruby/site_ruby/1.8/watir.rb:3431:in `method_missing' 
     from c:/ruby/lib/ruby/site_ruby/1.8/watir.rb:3431:in `doKeyPress' 
     from c:/ruby/lib/ruby/site_ruby/1.8/watir.rb:3427:in `each' 
     from c:/ruby/lib/ruby/site_ruby/1.8/watir.rb:3427:in `doKeyPress' 
     from c:/ruby/lib/ruby/site_ruby/1.8/watir.rb:3393:in `set' 
     from (irb):8 
irb(main):009:0> ie.text_fields.each {|x| puts x } 
type:   text 
id: 
name:   j_username 
value: 
disabled:  false 
length:  20 
read only: false 
type:   password 
id: 
name:   j_password 
value: 
disabled:  false 
length:  20 
read only: false 

爲什麼錯誤,或者爲什麼形式正在提交任何想法?

注:我可以設置字段就好了,而不使用perl的,VBScript中,蟒蛇,AutoIt的提交表單等

回答

1

我可以告訴你更多,如果你發佈有關HTML或鏈接(如果頁面是公開的),但我的猜測是輸入密碼會激發提交表單的JavaScript事件。 Access is denied.可能意味着有一個框架,並且IE不允許訪問它(http://wiki.openqa.org/display/WTR/Frames)。

也許這將有助於:

ie.text_field(:name, "j_password").value=("password") 
+0

偉大的作品! 在輸入密碼時沒有javascript提交表單,但有一些發生在我沒有意識到的特定字母組合上。我傳遞的實際字符串恰好包含它。再次感謝。 – CalvinTreg 2009-11-05 16:11:28

+0

我很高興能幫上忙。 :) – 2009-11-06 09:37:44

相關問題