【问题标题】:watir: How do I enter a value in a form, without submitting the form with watir?watir:如何在表单中输入值,而不用 watir 提交表单?
【发布时间】:2009-11-04 23:34:25
【问题描述】:

我有一个简单的登录表单,它有 2 个文本字段和一个按钮。 我可以很好地设置用户名字段的文本。 但是,当我设置密码字段时,表单会自动提交,并且出现错误。

来自 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、python、autoit 等提交表单。

【问题讨论】:

    标签: watir


    【解决方案1】:

    如果您发布了相关的 HTML 或链接(如果页面是公开的),我可以告诉您更多信息,但我的猜测是输入密码会触发提交表单的 JavaScript 事件。 Access is denied. 可能意味着有一个框架,而 IE 不允许访问它(http://wiki.openqa.org/display/WTR/Frames)。

    也许这会有所帮助:

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

    【讨论】:

    • 效果很好!输入密码时没有 javascript 提交表单,但有一些会触发我不知道的特定字母组合。我传递的实际字符串恰好包含它。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 2016-09-05
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多