代码之家  ›  专栏  ›  技术社区  ›  CalvinTreg

watir:我如何在表单中输入值,而不与watir一起提交表单?

  •  1
  • CalvinTreg  · 技术社区  · 16 年前

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

    来自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等提交表单的情况下设置字段。

    1 回复  |  直到 16 年前
        1
  •  1
  •   Željko Filipin    16 年前

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

    也许这有助于:

    ie.text_field(:name, "j_password").value=("password")
    
    推荐文章