【发布时间】:2015-09-19 22:09:40
【问题描述】:
我正在尝试使用 Selenium 将 sendKeys 输入到 FireFox 浏览器中的日历日期元素。该元素已显示,但我不断收到以下异常:
Caused by: **org.openqa.selenium.ElementNotVisibleException: Element is not currently visible and so may not be interacted with**
Build info: version: '2.47.1', revision: '411b314', time: '2015-07-30 02:56:46'
System info: host: 'abcde-693bdc76f', ip: '192.168.1.4', os.name: 'Windows XP', os.arch: 'x86', os.version: '5.1', java.version: '1.8.0_60'
Driver info: driver.version: unknown
定位器唯一标识元素;当我执行 findElements 时,列表中只有一个元素。
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("input[id='depart_date']")));
WebElement startDate = (WebElement) driver.findElement(By.cssSelector("input[id='depart_date']"));
startDate.isDisplayed();
startDate.sendKeys(Keys.DELETE);
startDate.sendKeys("20/09/2015");
以下是该元素的 HTML 代码:
<div id="travel_dates-start-wrapper" class="r9-datepicker-wrapper r9- datepicker-twofields r9-datepicker-start-empty">
<span class="r9-datepicker-icon r9-icon-calendar-depart"></span>
<span id="travel_dates-start" class="r9-datepicker-section r9-datepicker-start">
<span id="travel_dates-start-display" class="r9-datepicker-display" contenteditable="true" tabindex="0" aria-label="Start Date"></span>
<span id="travel_dates-start-placeholder" class="r9-datepicker-placeholder">Depart</span>
</span>
<span id="travel_dates-start-clear" class="r9-datepicker-clear"></span>
<input id="travel_dates-start-tab" class="r9-datepicker-tab" type="text" readonly="true">
<input id="depart_date" class="r9-datepicker-input r9-datepicker-start" type="text" value="" name="depart_date">
</div>
这是我在 StackOverflow 上的第一篇文章,如果我的文章有任何问题,请见谅。我发现了很多关于同一个例外的问题。尝试了一切,但似乎没有任何效果,我被一个看似简单的问题所困扰。请帮忙。
编辑:根据下面@spcial 的建议,从span 更改为input。
还是不行。
【问题讨论】:
-
你的第一篇文章做得很好。您做了自己的研究,尝试了一些事情,并发布了相关信息,以便我们更好地帮助您。我唯一推荐的是当你发布 HTML 时,使用像 jsbeautifier.org 这样的美化工具来格式化 HTML。它会为您缩进等,因此更容易阅读。
标签: java firefox selenium selenium-webdriver