Проблема с вашим XPath заключается в том, что вы пытаетесь найти элемент по содержащемуся в нем тексту >1<
.Этот элемент не содержит >1<
, он содержит только 1
.Измените его на //td[@class='dxeCalendarDay'][.='1']
, и оно должно работать.
Глядя на ваш код, похоже, у вас есть другие проблемы.
Ваша первая строка ничего не делает ... Япредполагая, что вы хотели щелкнуть, чтобы открыть календарь?
Chromedriver.FindElement(By.Id("ctl00_MainContent_dpStart_DDD_C_mt")).Click();
В общем, если вы не собираетесь повторно использовать переменную, не беспокойтесь о сохранении ссылки на веб-элемент.Измените
IWebElement FromCalendar1 = Chromedriver.FindElement(By.XPath("//tr/td[contains(text(), '>1<'")); //
FromCalendar1.Click();
на
Chromedriver.FindElement(By.XPath("//tr/td[contains(text(), '>1<'")).Click();
Поскольку вы щелкаете элемент, и календарь открывается, вы должны предположить, что он может быть недоступен мгновенно, поэтому вам следует добавить ожидание.Ваш окончательный код будет выглядеть примерно так:
Chromedriver.FindElement(By.Id("ctl00_MainContent_dpStart_DDD_C_mt")).Click();
new WebDriverWait(Chromedriver, TimeSpan.FromSeconds(5)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//td[@class='dxeCalendarDay'][.='1']"))).Click();