2

CasperJS と coffeescript は初めてです。ログインフォームのパスワード要素が最近変更される前に機能していた、WebサイトにログインするためのCasperJS coffeescriptテストの非常に単純な部分があります。残念ながら、元のフォームを思い出せませんが、現在のログイン フォームは次のようになっています。

<div id="login-body">
  <img src="/assets/images/logo.png" class="logo" alt="Test Acme Wil-e-Coyote Company">    
  <form action="/Login/login/" method="post">
    <h2>Please log in to catch the roadrunner:</h2>
    <div class="form-row">
      <label for="login-username">Username:</label>
      <input type="text" id="login-username" class="text placeholder" 
      data-placeholder="first.last" placeholder="first.last" name="username
      value>
    </div>
    <div class="form-row form-password">
      <label for="login-password-placeholder">Password:</label>
      <input type="text" id="login-password-placeholder" class="text password-placeholder 
      placeholder" name="password" data-placeholder="Password is case sensitive"
      placeholder="Password is case sensitive">
      <input type="password" id="login-password" class="text password-text placeholder"
      name="password" placeholder="Password is case sensitive" style="opacity: 0;
      position: fixed; display: none;">
    </div>
    <div class="form-row">
      <p class="switch"><a href="/Login/recover" 
      data-switch="forgot">Having trouble logging in? »</a></p>
      <input type="submit" id="login-submit" class="submit" value="Log In">
    </div>
  </form>

ログインに使用しようとしたコーヒースクリプトのバリエーションは次のとおりです。

1. これは以前は正常に機能していました

casper.start appUrl('http://acmewilecoyote/Login/login'), ->
  @fill 'div#login-body > form'
      username: 'MyName'
      password: 'MyPassword'
    , true
  @wait 4000

2.

casper.start appUrl('http://acmewilecoyote/Login/login'), ->
  @fill 'div#login-body'
      username: 'MyName'
      password: 'MyPassword'
    , true
  @wait 4000

3. このページには他のフォームはありません - これは別のサイトのログイン フォームで動作しました

casper.start appUrl('http://acmewilecoyote/Login/login'), ->
  @fill 'form'
      username: 'MyName'
      password: 'MyPassword'
    , true
  @wait 4000

4.

casper.start appUrl('http://acmewilecoyote/Login/login'), ->
  @fill 'form#login-body'
      username: 'MyName'
      password: 'MyPassword'
    , true
  @wait 4000

デバッグ出力は有用なものを何も提供しないので、スクリーン キャプチャをスクリプトに追加しました。見た目から、パスワード フィールドを空白のままにしてフォームを送信しようとしているように見えます。どんな助けでも大歓迎です。

4

1 に答える 1

4

GitHub ページのマスター ブランチから CasperJS の最新バージョンを使用する場合はCasper#fill .

次に、スクリプトを次のように変更します。

casper.start appUrl('http://acmewilecoyote/Login/login'), ->
  @fillSelectors 'form#login-body'
      '#login-username': 'MyName'
      '#login-password': 'MyPassword'
    , true
  @wait 4000

マスター ブランチがないと、現在、パスワード入力フィールドにアクセスするために必要な API がありません。password

于 2013-05-15T18:19:32.103 に答える