我正在使用来自角度UI引导库的datepicker。
https://angular-ui.github.io/bootstrap/#/Datepicker

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

我该怎么做才能检索该值?

更新:
在Chrome控制台中

$('#effectiveDate')返回:

[<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();返回

""


angular.element($ 0).scope()。elt.registrationState.effectiveDate返回:

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


但在硒中:

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


给出错误:

org.openqa.selenium.WebDriverException: unknown error: $0 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($0).val()


另外,你尝试过

 $('#effectiveDate').val()


代替这个

$('#effectiveDate').text()


更新

关于评论


  这是$('#effectiveDate')返回:
  []


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


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

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

09-25 17:54