1: <?php
2: namespace Azalea\Selenium\EHR\UI;
3:
4: class SelectDropdown extends \Azalea\Selenium\Core\View
5: {
6: protected static $TEXTBOX;
7: protected static $DROPDOWN = "#select2-drop .select2-results";
8:
9: function __construct($driver, $selector)
10: {
11: parent::__construct($driver);
12:
13: self::$TEXTBOX = $selector;
14: }
15:
16: function setSearch($text)
17: {
18: $this->byCss(self::$TEXTBOX)->value($text);
19: }
20:
21: function selectByIndex($index)
22: {
23: $this->byCss(self::$DROPDOWN . " li.select2-results-dept-1.select2-result-selectable:nth-of-type(" . ($index + 1) . ")")->click();
24: }
25:
26: function selectByTextSearch($text)
27: {
28: $elements = $this->elements($this->using('css selector')->value(self::$DROPDOWN . ' li.select2-result-selectable'));
29: if (count($elements)) {
30: foreach($elements as $element) {
31: if (strpos($element->text(), $text) !== false) {
32: $element->click();
33: break;
34: }
35: }
36: }
37: }
38: }