2016-09-26 7 views
0

Я пытаюсь щелкнуть элемент и после этого хочу выбрать дату между сегодняшним и последним днем.Найти и щелкнуть элемент, используя Selenium, Java

Вот изображение enter image description here

Я могу нажать на Позиция Добавлено Дата элемент, но я застрял здесь «Как я могу выбрать первый элемент выбора даты и выберите последний день, а затем нажмите на Для и выберите дату сегодня.

здесь является xpath

//*[contains(text(), 'Position Added Date:')]/input[@class='datetime-picker-date'] 

Вот элемент кода, который является displaye d после нажатия выпадающего меню

<div class="jquery-ui-v1-10-3 dropdown-filter-edit-popup group" data-bind="control: EditorPopup" style="display: block;"> 

    <a class="clear-filters" href="#" data-bind="click: Clear, css: { disabled: !CanClear() }">Clear Items</a> 

    <button data-bind="visible: HelpButtonVisible, click: HelpClick, css: {close: HelpOpen() == true }" class="help close" style="display: none;"></button> 

    <div class="filter-content" data-bind="control: EditViewModel, event: { keydown: EditorKey }"><div class="date-range-filter Edit"> 
     <div class="form-group"> 
      <label class="">From:</label> 
      <div data-bind="control: From" class=""><!-- ko if: !HideDate --> 
       <input type="text" class="datetime-picker-date hasDatepicker input-sm" data-bind="value: Date, valueUpdate: 'keyup', jqWidget: { datepicker: DatePickerArgs }, assignTo: DateField, attr: { 'readonly': IsReadOnly() }, enable: IsEnabled, css: { 'input-sm': SmallSize }" id="dp1474822442990"> 
       <!-- /ko --> 
       <!-- ko if: !HideTime --><!-- /ko --></div> 
      </div> 
      <div class="form-group"> 
       <label class="">To:</label> 
       <div data-bind="control: To" class=""><!-- ko if: !HideDate    --> 
        <input type="text" class="datetime-picker-date hasDatepicker input-sm" data-bind="value: Date, valueUpdate: 'keyup', jqWidget: { datepicker: DatePickerArgs }, assignTo: DateField, attr: { 'readonly': IsReadOnly() }, enable: IsEnabled, css: { 'input-sm': SmallSize }" id="dp1474822442991"> 
        <!-- /ko --> 
        <!-- ko if: !HideTime --><!-- /ko --></div> 
      </div> 
     </div> 
    </div> 
</div> 

Я не могу идти с идентификаторами, так как это динамика.

Просьба сообщить.

Благодаря

+0

ли эти идентификатор для изменения входного или они всегда то же самое? Если они статичны, я бы рекомендовал подключить их к календарю «от» и «Кому», чтобы сделать показ календаря. Что касается дат в календаре, посмотрите более внимательно. Возможно, есть специальные имена классов, такие как «сегодня», связанные с сегодняшней датой. – robx

+0

ids действительно изменяются при каждом обновлении, а 'datetime-picker-date' - это класс, назначенный как в поле' To', так и 'From'' input'. – Mubin

ответ

1

Вместо календаря открытия и выберите дату, вы можете использовать .sendKeys() ввести дату в соответствующем формате, как показано ниже: -

WebDriverWait wait = new WebDriverWait(driver, 10); 
  • Введите From дату: -

    wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("div[data-bind*='From'] > input.datetime-picker-date"))).sendKeys("From data in expected date format"); 
    
  • To Дата: -

    wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("div[data-bind*='To'] > input.datetime-picker-date"))).sendKeys("To date in expected date format"); 
    
Смежные вопросы