我正在尝试编写一个自动化测试,要求浏览器从日期选择器中选择今天的日期,但我无法解决或找到有关如何执行此操作的任何信息。我只能找到要求它选择指定日期的信息。但是我希望我的测试能够选择“今天”恰好是它自己运行的日期。
我的代码到目前为止......
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?
谢谢,
谢里登
答案 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");