清除日期选择器字段

ezykj2lf  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(366)

我有下面的日期选择器字段,它根据表单上的不同字段填充。我需要清除这个自动填充的日期,然后再次单击它并选择一个不同的日期。因此,我尝试使用xpath单击clear触发器(cross)。但它不点击。我也试过keys.delete、backspace等,也试过clear()。有人能建议我用selenium、java或js实现这一点的其他方法吗?我使用selenium和java。
html:-

<div class="x-no-min-content x-datepickerfield x-pickerfield x-textfield x-field x-component x-body-align-stretch x-animate-underline x-label-align-placeholder x-label-align-vertical x-label-text-align-left null x-mandatory-field x-error-target-under x-labeled x-required x-paint-monitored x-size-monitored x-layout-auto-item" data-componentid="ext-datefield-5" data-xid="2965" id="ext-datefield-5">
<label class="x-label-el" for="ext-element-7051" id="ext-element-7053" style="width: 200px; transform: translateX(0px) translateY(0px); font-size: 12px;">
    <span class="x-label-text-el" id="ext-element-7056">Delivery Date</span>
</label>
<div class="x-body-wrap-el">
    <div class="x-body-el" id="ext-element-7052">
        <div class="x-input-wrap-el">
            <div class="x-before-input-el" id="ext-element-7054"/>
            <input tabindex="0" oninput="return Ext.doEv(this, event);" class="x-input-el" type="text" id="ext-element-7051" name="delivery_date" placeholder="" autocomplete="off" data-componentid="ext-datefield-5" readonly="true">
                <div class="x-after-input-el" id="ext-element-7055">
                    *<div data-componentid="ext-cleartrigger-62" class="x-cleartrigger x-trigger x-interactive datepickerfield-cancel x-ignore-theme" data-xid="2966" id="ext-cleartrigger-62">*
                        <div class="x-icon-el x-font-icon"/>
                    </div>
                    <div data-componentid="ext-datetrigger-5" class="x-datetrigger x-trigger x-interactive" data-xid="2967" id="ext-datetrigger-5">
                        <div class="x-icon-el x-font-icon"/>
                    </div>
                </div>
            </div>
            <div class="x-underline-el"/>
        </div>
        <div class="x-error-el">
            <div class="x-error-icon-el x-font-icon"/>
            <div class="x-error-message-el"/>
        </div>
    </div>
    <div class="x-paint-monitor cssanimation"/>
    <div class="x-size-monitors scroll">
        <div class="expand"/>
        <div class="shrink"/>
    </div>
</div>

xpathused:-

//div[contains(@class,'x-no-min-content x-datepickerfield') and .//span[contains(text(),'Delivery Date')]]//div[contains(@class,'x-cleartrigger x-trigger')]

截图:

ppcbkaq5

ppcbkaq51#

xpath看起来不错,不过可以简化。
可能发生的情况是,当您选择一个值时,“x”元素被阻塞。尝试等待元素可单击:

WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//div[contains(@class,'x-no-min-content x-datepickerfield') and .//span[contains(text(),'Delivery Date')]]//div[contains(@class,'x-cleartrigger x-trigger')]")));

相关问题