我的问题是整个字段只是一个输入,并且是 div 内的唯一一行:
<div class="term_dateWidth__hL6-b" style="visibility: visible;">
<input type="date" id="start" min="1900-01-01" max="9999-12-30" value="">
</div>
我可以找到该元素,但当我单击它时,它仅突出显示文本框,而不会弹出选择器。如果我用鼠标手动单击突出显示的部分,它将显示出来。我只是不知道如何用 Selenium 做到这一点。我什至尝试了父div,但那不起作用。我虽然也许通过动作我可以达到某个点,但这似乎也不起作用,尽管也许我不理解正确使用尺寸。元素
termDateArrow 已设置为下面的输入。
public void clickTermDateArrow() {
Dimension size = termDateArrow.getSize();
int height = size.getHeight();
int width = size.getWidth();
Point point = termDateArrow.getLocation();
int x = point.getX();
int y = point.getY();
Actions action = new Actions(driver);
action.moveToElement(termDateArrow, width - 1, y + 10).build().perform();
}
但这也行不通。我正在尝试单击距左上角点的偏移量( getLocation() 有效。是的,我知道我可以将文本发送到框中,但这不会测试选择器。有什么建议吗?看图
Dimension size = termDateArrow.getSize();
int width = size.getWidth();
Actions action = new Actions(driver);
action.moveToElement(termDateArrow, (width / 2) - 5, 0).build().perform();
action.click().build().perform();
TestUtils.sleep(5000);
出于某种原因,我点击了两次。不幸的是,它似乎是一个 Windows 日历选择器,因此 Selenium 找不到它。我只需按 ENTER 并验证日期是当前日期