Chris@0: Chris@0: * Chris@0: * For the full copyright and license information, please view the LICENSE Chris@0: * file that was distributed with this source code. Chris@0: */ Chris@0: Chris@0: namespace Behat\Mink\Exception; Chris@0: Chris@0: use Behat\Mink\Driver\DriverInterface; Chris@0: use Behat\Mink\Session; Chris@0: Chris@0: /** Chris@0: * Exception thrown when an expected element is not found. Chris@0: * Chris@0: * @author Konstantin Kudryashov Chris@0: */ Chris@0: class ElementNotFoundException extends ExpectationException Chris@0: { Chris@0: /** Chris@0: * Initializes exception. Chris@0: * Chris@0: * @param DriverInterface|Session $driver driver instance Chris@0: * @param string $type element type Chris@0: * @param string $selector element selector type Chris@0: * @param string $locator element locator Chris@0: */ Chris@0: public function __construct($driver, $type = null, $selector = null, $locator = null) Chris@0: { Chris@0: $message = ''; Chris@0: Chris@0: if (null !== $type) { Chris@0: $message .= ucfirst($type); Chris@0: } else { Chris@0: $message .= 'Tag'; Chris@0: } Chris@0: Chris@0: if (null !== $locator) { Chris@0: if (null === $selector || in_array($selector, array('css', 'xpath'))) { Chris@0: $selector = 'matching '.($selector ?: 'locator'); Chris@0: } else { Chris@0: $selector = 'with '.$selector; Chris@0: } Chris@0: $message .= ' '.$selector.' "'.$locator.'"'; Chris@0: } Chris@0: Chris@0: $message .= ' not found.'; Chris@0: Chris@0: parent::__construct($message, $driver); Chris@0: } Chris@0: }