繁体   English   中英

使用Selenium,Java查找并单击元素

[英]Find and Click on element using Selenium, Java

我试图单击一个元素,然后在此之后要选择今天和最后一天之间的日期。

这是图片 在此处输入图片说明

我可以单击“已添加位置的日期”元素,但我被困在这里“如何选择“首个日期选择器”并选择最后一天,然后单击“ 至”并选择今天的日期。

这是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,因为它们是动态的。

请指教。

谢谢

不用打开日历并选择日期,您可以使用.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"); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM