我正在尝试将日期发送到Anuglar应用程序的输入文本框。文本框仅接受日期格式。我尝试将日期声明为int或Date,然后在末尾添加一个空字符串,但这没有用。 .Click()方法适用于此对象。
int enterdate = 01012016;
PageObjectsLocators.locate_Date_textfield(Iwebdriver).SendKeys(enterdate + "");
DateTime iDate;
iDate = DateAndTime.Today.AddDays(-1);
PageObjectsLocators.locate_Date_textfield(Iwebdriver).SendKeys(iDate + "");
在两种情况下我都得到ElementNotInteractableException
<input type="text" id="ev_dateofevent" ng-keypress="allowDigit($event);" placeholder="MM/dd/yyyy" class="form-control ng-pristine ng-valid ng-isolate-scope ng-empty ng-valid-maxlength ng-valid-date ng-touched" uib-datepicker-popup="MM/dd/yyyy" ng-model="fieldValueObj" is-open="isOpenCalendar" maxlength="10" ng-blur="datechange(field,id,datetitle);" close-text="Close" alt-input-formats="altInputFormats" ng-disabled="datereadonly" aria-invalid="false" style="">
您可以尝试使用Javascript而不是input
来设置SendKeys
值。对于许多不接受传统Selenium交互的JS模块元素,这可以作为一种解决方法。
var input = PageObjectsLocators.locate_Date_textfield(Iwebdriver);
Iwebdriver.executeScript("arguments[0].setAttribute('value', 'dateValueHere')", input);