JastaFly
@JastaFly

Selenium как проверить наличие элемента?

Есть как в стеке PHP + Selenium проверить наличие элемента с нужным селектором на странице? Если использовать такой код:
$elem = WebDriverBy::id('elemId'WhichIsNot);
$chrome->findElement($successRegisterModal);

я получу ошибку в консоли:
1) Enex\Selenium\Test\RegistrationTest::testRegistrationForigionCompany
Facebook\WebDriver\Exception\NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"#elemId'WhichIsNot"}
  (Session info: chrome=94.0.4606.61)

/app/vendor/php-webdriver/webdriver/lib/Exception/WebDriverException.php:117
/app/vendor/php-webdriver/webdriver/lib/Remote/HttpCommandExecutor.php:372
/app/vendor/php-webdriver/webdriver/lib/Remote/RemoteWebDriver.php:585
/app/vendor/php-webdriver/webdriver/lib/Remote/RemoteWebDriver.php:208
/app/tests/RegistrationTest.php:107
phpvfscomposer:///app/vendor/phpunit/phpunit/phpunit:97

Как избежать этого вывода в консоль и обработать сценарий с ненайденным элементом своими средствами?!??
  • Вопрос задан
  • 302 просмотра
Пригласить эксперта
Ответы на вопрос 1
EreminD
@EreminD
Кое-что умею
Во многих языках логика одна и та же: перехватываем исключение и пишем свою логику, как реагировать на него

try {
	$elem = WebDriverBy::id('elemId'WhichIsNot);
	$chrome->findElement($successRegisterModal);
	//если элемент будет найден, нижняя часть выполняться не будет
} catch (NoSuchElementException $ex) {
	// сюда попадем, если элемент не найден
	echo 'не нашли элемент'; 
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы