我正在尝试点击第一个“今天”按钮,它会填写日期,请参阅代码:
<div class="ui-datepicker-buttonpane ui-widget-content">
<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" data-handler="today" data-event="click">Today</button>
<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" data-handler="hide" data-event="click">Done</button>
</div>
这是一个“ui-datepicker-buttonpane ui-widget-content”,看起来像这样:
我可以使用以下内容打开它:
Driver.Instance.FindElement(By.Id("NotAfterUtc")).Click();
但是尝试点击它不起作用。
IWebElement button1 = Driver.Instance.FindElement(By.TagName("button"));
IList<IWebElement> buttons1 = button1.FindElements(By.LinkText("Today"));
foreach (IWebElement i in buttons1)
{
if (i.Text.Equals("Today"))
{
i.FindElement(By.LinkText("Today")).Click();
break;
}
}
答案 0 :(得分:2)
最好使用css-selector而不是xpath来选择该元素,如下所示:
Driver.FindElement(By.CssSelector("button.ui-datepicker-current"))
答案 1 :(得分:1)
它不是一个链接,它是一个按钮。使用"//button[contains(text(),'Today')]"
xpath
答案 2 :(得分:0)
我认为您不应该测试Datepicker,因为这不是您的代码。 所以在我的测试中,我写了设置directely DateTime.Now,如下所示:
Driver.Instance.FindElement(By.Id("NotAfterUtc").send_keys(DateTime.Now);
我希望它有所帮助!