Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
DatepickerElement.php
Go to the documentation of this file.
1 <?php
8 
9 use Magento\Mtf\Client\Locator;
10 
14 class DatepickerElement extends SimpleElement
15 {
21  protected $datePickerButton = './../button[contains(@class,"ui-datepicker-trigger")]';
22 
28  protected $datePickerBlock = './ancestor::body//*[@id="ui-datepicker-div"]';
29 
35  protected $datePickerMonth = './/*[contains(@class,"ui-datepicker-month")]';
36 
42  protected $datePickerYear = './/*[contains(@class,"ui-datepicker-year")]';
43 
49  protected $datePickerCalendar = './/*[contains(@class,"ui-datepicker-calendar")]//*/td/a[text()="%s"]';
50 
56  protected $datePickerButtonClose = './/*[contains(@class,"ui-datepicker-close")]';
57 
64  public function setValue($value)
65  {
66  $date = $this->parseDate($value);
67  $date[1] = ltrim($date[1], '0');
68  $this->click();
69  $this->find($this->datePickerButton, Locator::SELECTOR_XPATH)->click();
70  $datapicker = $this->find($this->datePickerBlock, Locator::SELECTOR_XPATH);
71  $datapicker->find($this->datePickerYear, Locator::SELECTOR_XPATH, 'select')->setValue($date[2]);
72  $datapicker->find($this->datePickerMonth, Locator::SELECTOR_XPATH, 'select')->setValue($date[0]);
73  $datapicker->find(sprintf($this->datePickerCalendar, $date[1]), Locator::SELECTOR_XPATH)->click();
74  if ($datapicker->isVisible()) {
75  $datapicker->find($this->datePickerButtonClose, Locator::SELECTOR_XPATH)->click();
76  }
77  }
78 
85  protected function parseDate($value)
86  {
87  $formatDate = '%b %d, %Y %I:%M %p';
88  if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
89  $formatDate = str_replace('%d', '%#d', $formatDate);
90  }
91 
92  $date = strtotime($value);
93  $date = strftime($formatDate, $date);
94  $date = preg_split('/[,\s]/', $date);
95  array_splice($date, 2, 1);
96 
97  return $date;
98  }
99 }
taxRateField find('.mselect-list') .on( 'click.mselect-edit'
Definition: edit.phtml:162
$value
Definition: gender.phtml:16