【发布时间】:2014-07-30 13:16:11
【问题描述】:
我有一个需要自动登录的网站。
我正在尝试使用 Watin .NET 库来做到这一点。
当我使用 Watin 填写用户名和密码字段时,sumbit 按钮仍然处于禁用状态。
我尝试在其他字段(KeyPress、KeyDown、KeyUp、Tab、Enter...)上应用许多事件。没有任何效果。
请原谅我按值查找按钮,但这是我发现可行的唯一方法。
var field = ie.TextField(Find.ByName("userName"));
field.TypeText("username");
field.KeyDown();
field.KeyUp();
field = ie.TextField(Find.ByName("password"));
field.TypeText("pwd");
field.KeyDown();
field.KeyUp();
ie.Button(Find.ByValue("התחבר")).Click();
我收到一个按钮被禁用的异常。
我需要登录的页面是:
https://portal.dorad.co.il/#/Login
我想要的只是找到一种自动方式来启用 sumbit 按钮,以便我可以登录。
登录表单代码:
<form class="span5 offset4 loginForm ng-pristine ng-invalid ng-invalid-required" name="loginForm" ng-submit="doLogin()" autocomplete="off">
<h2>
Login
</h2>
<fieldset>
<div class="control-group">
<label class="control-label" for="fullName">
User Name
</label>
<div class="controls">
<input name="userName" id="useName" ng-required="true" type="text" ng-model="user.userName" auto-fill-sync="" autocomplete="off" class="ng-pristine ng-invalid ng-invalid-required" required="required">
<span class="alert alert-error" ng-show="loginForm.userName.$error.required && loginForm.userName.$dirty" style="display: none;">
Mandatory Field
</span>
</div>
</div>
<div class="control-group">
<label class="control-label" for="emailAddress">
Password
</label>
<div class="controls">
<input name="password" id="password" type="password" ng-model="user.password" auto-fill-sync="" ng-required="true" autocomplete="off" class="ng-pristine ng-invalid ng-invalid-required" required="required">
<span class="alert alert-error" ng-show="loginForm.password.$error.required && loginForm.password.$dirty" style="display: none;">
Mandatory Field
</span>
</div>
</div>
</fieldset>
<input type="submit" class="btn" value="התחבר" ng-disabled="loginForm.$invalid" disabled="disabled">
</form>
【问题讨论】:
-
您是否检查过是否有用户名和密码的更改事件。如果是这样,输入用户名密码后,则触发更改事件。另外,是否可以发布html内容,因为我无法查看您发布的链接。
-
当我点击页面“查看源代码”时,我看不到用户名/密码字段,但是当我点击一个字段,然后点击“检查元素”时,我可以找到这些字段,所以我不明白他们藏在哪里……
-
看我上面粘贴的表格
-
HTML 没有问题。在我看来,在文本字段中输入文本后会发生一些 java 脚本验证。如果两个字段中的数据都正确,则提交按钮将被启用。所以我猜输入的数据可能不正确。
-
这不是真的,我有正确的数据,但我也尝试在每个字段上手动输入一个字符 - 并且该按钮已启用。但是当 Watin 自动插入内容时,一些 javascript 事件不会被触发。我只是无法看到它是哪个事件!
标签: javascript .net web watin