我正在尝试自动化网页中的2个日期字段“开始日期”和“结束日期”。 但是在单击“结束日期”之前,我收到了org.openqa.selenium.ElementNotVisibleException异常。
HTML:
开始日期:
<td role="gridcell" id="ext-gen3261" title="May 01, 2019" class="x-datepicker-active x-datepicker-cell x-datepicker-selected">
<a role="presentation" hidefocus="on" class="x-datepicker-date" href="#">1</a>
</td>
结束日期:
<td role="gridcell" id="ext-gen3310" title="May 02, 2019" class="x-datepicker-active x-datepicker-cell">
<a role="presentation" hidefocus="on" class="x-datepicker-date" href="#">2</a>
</td>
我可以将WebDriverWait用于“结束日期”字段,并在选择“开始日期不是自动的”时解决了该问题。 (仅当“结束日期”自动执行时)。
driver.findElement(By.id("ext-gen3220")).click(); //id of the calendar icon = 'ext-gen3220'
WebDriverWait wait2 = new WebDriverWait(driver,30);
wait2.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//td[@title='May 02, 2019']")));
driver.findElement(By.xpath("//td[@title='May 02, 2019']")).click();
(测试通过)
但是,当我自动选择开始日期和结束日期时,此解决方案不起作用。
driver.findElement(By.id("ext-gen3218")).click(); //id of the start date calendar icon = 'ext-gen3218'
WebDriverWait wait1 = new WebDriverWait(driver, 30);
wait1.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//td[@title='May 01, 2019']")));
driver.findElement(By.xpath("//td[@title='May 01, 2019']")).click();
driver.findElement(By.id("ext-gen3220")).click(); //id of the end date calendar icon = 'ext-gen3220'
WebDriverWait wait2 = new WebDriverWait(driver,30);
wait2.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//td[@title='May 02, 2019']")));
driver.findElement(By.xpath("//td[@title='May 02, 2019']")).click();
我再次收到org.openqa.selenium.ElementNotVisibleException异常。
如何解决仅在两个日期字段都自动执行时才会出现的问题?