0

Watir を使用して、Web アプリケーションの簡単なテストを書き始めました。

最初にやりたいことは、OS X の SafariWatir を使用して、「email」タイプの電子メール入力要素をログイン フォームに入力することです。

これはうまくいきません:

browser.text_field(:id, "email").set('my@email.com')

痕跡:

/Library/Ruby/Gems/1.8/gems/safariwatir-0.4.0/lib/safariwatir/scripter.rb:661:in `execute': Unable to locate TextField, using :id and "email" (Watir::Exception::UnknownObjectException)
    from /Library/Ruby/Gems/1.8/gems/safariwatir-0.4.0/lib/safariwatir/scripter.rb:303:in `focus'
    from /Library/Ruby/Gems/1.8/gems/safariwatir-0.4.0/lib/safariwatir.rb:525:in `set'
    from test.rb:10

type 属性値が異なるため、要素が一致していないと思います。ドキュメントには、この種の要素の仕様は記載されていません。何か案は?

ありがとう!

更新: pinganalytics をテストしているというユーザーのコメントに基づいて (再フォーマットされた) HTML サンプルを追加します

<form action="http://pingalytics.com/" method="post" accept-charset="utf-8"> 
  <p>
    <label for="email">Email</label> 
    <input type="email" name="email" value="" id="email" autofocus=""  /> 
  </p>
  <p>
    <label for="password">Password</label>
    <input type="password" name="password" value="" id="password"  /> 
  </p>
  <input type="submit" name="login" value="Log in with Pingdom" class="primary" />
  <p>
    <a href="https://www.pingdom.com/signup/">
      Sign up
    </a>
    , or 
    <a href="https://pp.pingdom.com/index.php/login" title="Reset your Pingdom password">
      recover your password
    </a>
    .
  </p>
</form>
4

1 に答える 1

1

input要素の「email」タイプはHTML5の時点で新しいものです。Safariwatirは、HTML5よりもかなり前の古いプロジェクトです。最近の作業はあまり見られず、潜在的な「text_field」要素を検索するときにこのタイプを検索する可能性はほとんどありません。

Watir 3.0またはWatir-webdriverは、HTML5を適切にサポートするために多くの作業が行われているため、より安全な方法です。

また、Webdriverは最近Safariのサポートを追加したので(手順についてはこちらを参照)、これはsafariwatirの実行可能な代替手段になりました(これ以上の作業は行われないと強く期待しています)。Safariのサポートはまだほんの少しDYIです。独自のサファリ拡張機能を構築する必要があり、Macでのみ機能しますが、オンラインギャラリーからダウンロードできる標準のサファリ拡張機能を誰かが公開し始めた場合は変更される可能性があります

于 2012-05-02T18:16:40.357 に答える