2016-09-26 12 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> 

ダイナミクスであるため、IDは使用できません。

お知らせください。代わりに、カレンダーを選択し、日付を開く、あなたは以下のように適切な形式で日付を入力し.sendKeys()を使用することができます

おかげ

+0

入力変化のために、これらのIDを実行したり、彼らは常に同じですか?静的な場合は、カレンダーを表示するには、カレンダーのピッカー「から」および「する」のようにそれらにフックすることをお勧めします。カレンダーの日付については、より詳しく見てください。おそらく、今日の日付に関連付けられた「今日」のような特別なクラス名があります。 – robx

+0

すべてのリフレッシュ時にidが変更され、 'datetime-picker-date'は' To'と 'From''入力ボックスの両方に割り当てられたクラスです。 – Mubin

答えて

1

: - :

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

WebDriverWait wait = new WebDriverWait(driver, 10); 
  • From日付を入力してください

  • To日付: -

    wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("div[data-bind*='To'] > input.datetime-picker-date"))).sendKeys("To date in expected date format"); 
    
関連する問題