У меня есть раскрывающееся меню, содержащее элементы списка, которые иногда статичны и иногда меняются. Моя главная цель - проверить, что меню содержит некоторый контент [после чего выводится этот контент и экспортируется в отчет].Behat - элемент контрольного списка содержит контент
Функция я создал в моем FeatureContext.php выглядит следующим образом:
/**
* @Then /^I check content exists for element "([^"]*)"$/
*/
public function iCheckElementContent($locator)
{
//check element exists on page
$element=$this->assertSession()->elementExists('css', $locator);
//check element content is not empty (returns exception if true)
if (empty($this->getPage()->find('css', $locator)->getText())) {
throw new Exception;
}
}
Как вы можете заметить, он основан на ответе на другой вопрос относительно этой функции. Моя проблема, однако, в том, что это не похоже на параметр getPage()
. Ошибка, которую я получаю:
PHP Fatal error: Uncaught Error: Call to undefined method FeatureContext::getPage()
Я также попытался сменить его на getValue() без каких-либо успехов. Есть идеи? (бонусные потрясающие очки за то, что помогли мне также со вторым шагом моих требований)
Использовать $ element! == null вместо пустого. Также обратите внимание, что метод find возвращает null или объект. Если элемент не найден, и вы используете getText на null, это приведет к фатальной ошибке php. Убедитесь, что элемент не равен нулю, а затем используйте getText els throw exception. – lauda