如何使用C#selenium自动化Md2数据采集器?
在现实生活中,我们没有自动日期选择器 我们通常将日期作为文本注入日期字段。但万一那不可能呢。因此,我们考虑将应用程序中使用的数据选择器自动化如何使用C#selenium自动化Md2数据采集器?,c#,angularjs,selenium,datepicker,automation,C#,Angularjs,Selenium,Datepicker,Automation,在现实生活中,我们没有自动日期选择器 我们通常将日期作为文本注入日期字段。但万一那不可能呢。因此,我们考虑将应用程序中使用的数据选择器自动化 由于大多数web应用要么迁移到angular最新版本,要么在angular中开发,我认为这将有助于每个人帮助自动化使用的日期选择器。尤其是md2 datepicker。为日期选择添加一个助手类 public class DatePickerSelection { public const string cellSelector =
由于大多数web应用要么迁移到angular最新版本,要么在angular中开发,我认为这将有助于每个人帮助自动化使用的日期选择器。尤其是md2 datepicker。为日期选择添加一个助手类
public class DatePickerSelection
{
public const string cellSelector = ".md2-calendar-body-cell > .md2-calendar-body-cell-content";
public static void SetCalenderDate(IWebDriver driver, string EnteredDate)
{
string[] dateEntered = EnteredDate.Split("/".ToCharArray()); //to split the dates into day, month and year value
int month = int.Parse(dateEntered[0]);
string mon = CultureInfo.CurrentCulture.DateTimeFormat.GetAbbreviatedMonthName(month);
int day = int.Parse(dateEntered[1]);
int year = int.Parse(dateEntered[2]);
int NoOfClicks = DateTime.Now.Year - year; //to select the year
driver.FindElement(By.CssSelector("div.md2-calendar-header-year")).Click();
for (int i = 0; i < NoOfClicks; i++)
{
driver.FindElement(By.CssSelector("div.md2-calendar-next-button")).Click();
}
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
js.ExecuteScript("document.body.style.zoom='100%'");
SetMonthAndDate(driver, mon, day);
}
public static void SetMonthAndDate(IWebDriver driver, string month, int day)
{
SelectMonth(driver, month);
SelectDay(driver, day.ToString());
}
public static void SelectMonth(IWebDriver driver, string mon)
{
IList<IWebElement> webElements = driver.FindElements(By.CssSelector(cellSelector));
IWebElement text = webElements.FirstOrDefault(x => x.Text.ToLower().Equals(mon.ToLower()));
text.Click();
Thread.Sleep(Timing.TimeOut);
}
public static void SelectDay(IWebDriver driver, string day)
{
IList<IWebElement> webElements = driver.FindElements(By.CssSelector(cellSelector));
IWebElement text = webElements.FirstOrDefault(x => x.Text.Contains(day));
text.Click();
Thread.Sleep(Timing.TimeOut);
}
}
string startDate = DateTime.Today.ToShortDateString();
SetCalenderDate(driver, startDate);