Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
MultiselectlistElement.php
Go to the documentation of this file.
1 <?php
8 
9 use Magento\Mtf\Client\Locator;
10 
14 class MultiselectlistElement extends MultiselectElement
15 {
21  protected $optionElement = './/*[contains(@class,"mselect-list-item")][%d]/label';
22 
28  protected $optionCheckedElement = './/*[contains(@class, "mselect-checked")]/following-sibling::span';
29 
35  protected $optionByValue = './/*[contains(@class,"mselect-list-item")]/label[contains(normalize-space(.), %s)]';
36 
43  public function setValue($values)
44  {
45  $options = $this->getOptions();
46  $values = is_array($values) ? $values : [$values];
47 
48  foreach ($options as $option) {
50  $optionText = $option->getText();
51  $isChecked = $option->find($this->optionCheckedElement, Locator::SELECTOR_XPATH)->isVisible();
52  $inArray = in_array($optionText, $values);
53  if (($isChecked && !$inArray) || (!$isChecked && $inArray)) {
54  $option->click();
55  }
56  }
57  }
58 
64  public function getValue()
65  {
66  $checkedOptions = [];
67  $options = $this->getOptions();
68 
69  foreach ($options as $option) {
71  $checkedOption = $option->find($this->optionCheckedElement, Locator::SELECTOR_XPATH);
72  if ($checkedOption->isVisible()) {
73  $checkedOptions[] = $checkedOption->getText();
74  }
75  }
76 
77  return $checkedOptions;
78  }
79 
85  protected function getOptions()
86  {
87  $options = [];
88  $counter = 1;
89 
90  $newOption = $this->find(sprintf($this->optionElement, $counter), Locator::SELECTOR_XPATH);
91  while ($newOption->isVisible()) {
92  $options[] = $newOption;
93  $counter++;
94  $newOption = $this->find(sprintf($this->optionElement, $counter), Locator::SELECTOR_XPATH);
95  }
96 
97  return $options;
98  }
99 
105  public function getAllValues()
106  {
107  $optionsValue = [];
108  $options = $this->getOptions();
109 
110  foreach ($options as $option) {
112  $optionsValue[] = $option->getText();
113  }
114 
115  return $optionsValue;
116  }
117 
124  public function isValueVisible($value)
125  {
126  $option = $this->find(sprintf($this->optionByValue, $this->escapeQuotes($value)), Locator::SELECTOR_XPATH);
127  return $option->isVisible();
128  }
129 }
taxRateField find('.mselect-list') .on( 'click.mselect-edit'
Definition: edit.phtml:162
$values
Definition: options.phtml:88
$value
Definition: gender.phtml:16