C# C Selenium日历单击不起作用,我得到一个错误
我可以通过点击第一个日历得到帮助,并且需要在下一个日历上做同样的事情。因此,我需要在第一个日历上选择周一的第一天,并在下个月的最后一天单击第二个日历。我创建的时间表是每两个月一次 第一个日历选择如下所示,这很有效C# C Selenium日历单击不起作用,我得到一个错误,c#,selenium,calendar,C#,Selenium,Calendar,我可以通过点击第一个日历得到帮助,并且需要在下一个日历上做同样的事情。因此,我需要在第一个日历上选择周一的第一天,并在下个月的最后一天单击第二个日历。我创建的时间表是每两个月一次 第一个日历选择如下所示,这很有效 IWebElement FromCalendar = Chromedriver.FindElement(By.Id("ctl00_MainContent_dpStart_B-1")); // FromCalendar.Click(); //Always
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秒后超时”
我不知道为什么第一个日历有效,第二个日历无效
提前谢谢你。我想好了
日历有2天30,因此它选择了10月份的30,应该是下个月的最后一天,即11月30日
最终代码
new WebDriverWait(Chromedriver, TimeSpan.FromSeconds(5)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("(//td[@class='dxeCalendarDay'][.='"+LastDayofNextMonth+"'])[2]"))).Click();
如果我们能看到日历,那就容易多了。你不认为你可以发布一个链接到这个页面吗?你至少需要发布相关的HTML。我正在尝试截图。该网站已登录,并且能够使用selenium自动登录。该网站是在ASPX中完成的,我看不到它背后的日历html编码。在网站上,我正在尝试获取从一个日历(例如2018年10月1日和2018年11月30日)到第二个日历的日程安排。一旦自动单击数字30,页面将刷新,并且能够看到这些日期之间的日程安排。