诸如org.openqa.selenium.WebElement.click()
或org.openqa.selenium.interactions.Actions.click()
之类的方法在运行时不会触发任何错误,但是不会发生单击动作。使用Javascript尝试过,但我尝试单击的元素似乎不可点击(在Chrome开发人员工具中返回未定义)
这里是元素的html
<div class="flatpickr-calendar animate showTimeInput arrowTop open" tabindex="-1" style="width: 245px; top: 719px; left: 1603.17px; right: auto;">
<div class="flatpickr-months">...</div>
<div class="flatpickr-innerContainer">
<div class="flatpickr-rContainer">
<div class="flatpickr-weekdays">...</div>
<div class="flatpickr-days" tabindex="-1" style="width: 245px;">
<div class="dayContainer">
<span class="flatpickr-day " aria-label="December 29, 2019" tabindex="-1">29</span>
</div>
</div>
</div>
</div>
</div>
要单击元素,您必须为elementToBeClickable()
引入WebDriverWait,并且可以使用以下Locator Strategies中的任何一个:
cssSelector
:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("div.dayContainer>span.flatpickr-day[aria-label='December 29, 2019']"))).click();
xpath
:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='dayContainer']/span[@class='flatpickr-day ' and text()='29']"))).click();