从日期选择器中选择今天的日期 - Selenium,C#,Visual Studio

时间:2017-10-06 11:29:15

标签: c# visual-studio selenium datepicker automated-tests

我正在尝试编写一个自动化测试,要求浏览器从日期选择器中选择今天的日期,但我无法解决或找到有关如何执行此操作的任何信息。我只能找到要求它选择指定日期的信息。但是我希望我的测试能够选择“今天”恰好是它自己运行的日期。

我的代码到目前为止......

using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using FluentAssertions;
using System;

namespace UnitTestProject5
{
[TestClass]
public class Portal
{
    [TestMethod]
    public void TestMethod1()
    {
        IWebDriver Driver = new ChromeDriver();

        // Logging in and other tests are here

        // Setting the COT Date (CotDate field location set earlier. The date picker appears when you click the CotDate field)
        CotDate.Click();
        var DatePicker = Driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_wizDetails_chk_cot"));

        //Close and Quit Chrome
        Driver.Close();
        Driver.Quit();

    }
}
}

如果答案在别处,我非常感谢它的链接:)从目前为止我看到的,看起来我可能需要使用JavaScript?

谢谢,

谢里登

2 个答案:

答案 0 :(得分:0)

我不得不使用FindElementByLinkText()和日期选择器几次。获取您正在查找的日期的DateTime对象,并将您需要的值(在本例中为Day int属性)拆分并转换为字符串。在FindElementByLinkText()中使用该值作为参数。

var today = DateTime.Today;

var driver = new ChromeDriver();

driver.Navigate().GoToUrl("http://seleniumpractise.blogspot.in/2016/08/how-to-handle-calendar-in-selenium.html");

driver.FindElementById("datepicker").Click();

driver.FindElementByLinkText(today.Day.ToString()).Click();

driver.Quit();

答案 1 :(得分:0)

您可以使用此功能并将其传递给定位器

DateTime.Now.ToString("M/d/yyyy");

结果:“10/7/2017”

DateTime.Now.ToString("M-d-yyyy");

结果:“10-7-2017”

DateTime.Now.ToString("yyyy-MM-dd");