我试图点击一个元素,之后想要选择今天和最后一天之间的日期。
我可以点击添加日期元素,但我在这里停留了"如何选择首日期选择器并选择最后一天,然后点击到,然后选择今天的日期。
这里是xpath
//*[contains(text(), 'Position Added Date:')]/input[@class='datetime-picker-date']
这是单击下拉列表后显示的元素代码
<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,因为这些是动态的。
请告知。
由于
答案 0 :(得分: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");