我是 CasperJS 和 coffeescript 的新手。我的 CasperJS 咖啡脚本测试中有一个非常简单的部分来登录网站,该部分在最近更改登录表单的密码元素之前可以正常工作。不幸的是,我不记得原始表单,但这是当前登录表单的外观:
<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
调试输出没有提供任何有用的东西,所以我在脚本中添加了一些屏幕截图,从它们的外观来看,它似乎试图提交密码字段留空的表单。任何帮助将非常感激。