Nearsoft\SeleniumClient\SelectElement::selectByPartialText PHP Method

selectByPartialText() public method

Sets an option selected by a partial text match
public selectByPartialText ( String $text )
$text String
    public function selectByPartialText($text)
    {
        $options = $this->_element->findElements(By::xPath(".//option[contains(text(), '" . $text . "')]"));
        $matched = false;
        foreach ($options as $option) {
            if (!$option->isSelected()) {
                $option->click();
            }
            $matched = true;
        }
        if (!$matched) {
            throw new \Exception("Cannot locate option in select element with text: " . $text);
        }
    }

Usage Example

 public function testSelectByPartialTextShouldSelect()
 {
     $select = new SelectElement($this->_driver->findElement(By::id("sel1")));
     $select->selectByPartialText("Red");
     $this->assertTrue($select->getElement()->findElement(By::xPath("option[@value = 2]"))->isSelected());
     $select = new SelectElement($this->_driver->findElement(By::id("sel2")));
     $select->selectByPartialText("peppers");
     $this->assertTrue($select->getElement()->findElement(By::xPath("option[@value = 'greenpeppers']"))->isSelected());
 }