我能够通过单击第一个日历获得帮助,并且需要为下一个日历做同样的事情。因此,我需要在第二个日历的第一个日历nad上选择一个月的第一天,我需要在下个月的最后一天单击。我创建的时间表是每两个月。
第一个日历选择如下,并且有效;
IWebElement FromCalendar = Chromedriver.FindElement(By.Id("ctl00_MainContent_dpStart_B-1")); //
FromCalendar.Click();
//Always Click the current 1st day of the month
new WebDriverWait(Chromedriver, TimeSpan.FromSeconds(2)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//td[@class='dxeCalendarDay'][.='1']"))).Click();
第二个日历如下,并且不起作用,我还创建了一个包含在xpath中的变量,但是出现超时错误,即使我将秒数更改为20或30秒,我仍然会遇到相同的错误。如果我将变量中的值硬编码,它将仍然无法正常工作。
String LastDayofNextMonth = endOfLastDayNextMonth.ToString("dd");
// 2nd Calendar
Chromedriver.FindElement(By.Id("ctl00_MainContent_dpEnd_B-1Img")).Click(); ; //
//Click next month because schedule should be every 2 months
Chromedriver.FindElement(By.Id("ctl00_MainContent_dpEnd_DDD_C_NMCImg")).Click(); //
//Always Click the last day of next month - so schedule is for every 2 months
new WebDriverWait(Chromedriver, TimeSpan.FromSeconds(3)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//td[@class='dxeCalendarDay'][.='"+LastDayofNextMonth+"']"))).Click();
日历确实打开并转到下个月,但未单击该月的最后一天,并且出现以下错误;
OpenQA.Selenium.WebDriverTimeoutException:'3秒后超时'
我不确定为什么第一个日历有效而第二个日历无效
谢谢。
答案 0 :(得分:0)
我知道了。
日历有2天30,因此它选择的是10月的30日,应该是下个月的最后一天,即11月30日。
最终代码;
new WebDriverWait(Chromedriver, TimeSpan.FromSeconds(5)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("(//td[@class='dxeCalendarDay'][.='"+LastDayofNextMonth+"'])[2]"))).Click();