我如何才能通过该登录页面?

时间:2019-12-21 20:04:29

标签: c# asp.net web-scraping watin

我每天需要访问几个网页来更新电子表格。我正在尝试使过程自动化。在一个站点上,我无法通过登录页面。
不管我扔什么,它都说我什么都没输入。如果我输入一个字符并将其删除,则可以正常工作。

TextField UserField = FindUsernameField(UsernameField);
UserField.ClickNoWait();
UserField.MouseEnter();
UserField.Value = userID;
UserField.SetAttributeValue("aria-invalid", "false");  // has no affect, still true
string attr = UserField.GetAttributeValue("class");
attr = attr.Replace("invalid", "valid");  // fails as attr is null

UserField.KeyPress();                

TextField PasswordField = FindPasswordField(this.PasswordField);
PasswordField.Click();
PasswordField.TypeText(password);
PasswordField.Change();

FindButton(LoginButton).Click();

还有更多的错误检查,但这是基本代码。如下所示,它成功插入了数据。但是这个网站不承认。

login failed

该字段的HTML开头如下:

<input class="ods-textfield__input ng-pristine ng-invalid ng-touched" id="ods-input-0" aria-invalid="false" aria-required="false" aria-labelledby="label-input-0" style="padding-left: 3rem;" type="text" placeholder="" odsInput="" data-controlname="username" _ngcontent-qwp-c11="">

并以此结尾:

<input class="ods-textfield__input ng-invalid ng-touched ods-textfield__input--error ng-dirty" id="ods-input-0" aria-invalid="true" aria-required="false" aria-labelledby="label-input-0 ods-error-0" style="padding-left: 3rem;" type="text" placeholder="" odsInput="" data-controlname="username" _ngcontent-qrr-c11="">

我希望“必填”

但是,如果我手动输入文本,则会得到:

<input class="ods-textfield__input ng-touched ng-dirty ng-valid" id="ods-input-0" aria-invalid="false" aria-required="false" aria-labelledby="label-input-0" style="padding-left: 3rem;" type="text" placeholder="" odsInput="" data-controlname="username" _ngcontent-qwp-c11="">

更新:我尝试获取类desc并将ng-invalid替换为ng-valid,并设置invalid = false,有关代码,请参见上文。

0 个答案:

没有答案