angular UI bootstrap 日期选择器无法使用 JQuery 表达式获取值

angular UI bootstrap datepicker can't get value using JQuery expression

我正在使用 angular UI bootstrap 库中的日期选择器。 https://angular-ui.github.io/bootstrap/#/Datepicker

在 select 日期之后,我无法使用 JQuery 表达式获取输入文本。 $('#effectiveDate').text() 总是返回空的,但我可以看到它在页面上有价值。

我怎样才能检索到这个值?

更新: 在 chrome 控制台中,

$('#effectiveDate') returns:

[<input id=​"effectiveDate" name=​"effectiveDate" type=​"text" class=​"form-control pickdaterInput ng-valid ng-isolate-scope ng-valid-date ng-dirty ng-valid-parse ng-touched" datepicker-popup=​"dd-MMMM-yyyy" ng-model=​"elt.registrationState.effectiveDate" is-open=​"opened" min-date=​"minDate" datepicker-options=​"dateOptions" close-text=​"Close">​]

$('#effectiveDate').text(); returns;

""

angular.element($0).scope().elt.registrationState.effectiveDate returns:

Tue Jul 14 2015 00:00:00 GMT-0400 (Eastern Daylight Time)

但在 Selenium 中:

        JavascriptExecutor js = (JavascriptExecutor) driver;
    String effectiveDate_string = js.executeScript("angular.element([=17=]).scope().elt.registrationState.effectiveDate.getTime().toString()").toString();

给出错误:

org.openqa.selenium.WebDriverException: unknown error: [=18=] is not defined
(Session info: chrome=43.0.2357.132)
(Driver info: chromedriver=2.14.313457   (3d645c400edf2e2c500566c9aa096063e707c9cf),platform=Windows NT 6.1 SP1 x86_64)   (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 9 milliseconds

您是否尝试在 Chrome (firefox) 中单击实际的输入元素,然后在控制台中键入它?

 angular.element([=10=]).val()

还有,你试过这个吗

 $('#effectiveDate').val()

而不是这个

$('#effectiveDate').text()

更新

关于评论

this is $('#effectiveDate') returns: [​]

$('#effectiveDate')[0].val()

原因是,当您调用 $('#effectiveDate') 时,您得到的数组只有一个您关心的值,这意味着您必须获得数组的第一项,因此是 [0]。您也可以尝试这样做以获得更多可读性。

$('#effectiveDate').first().val();