2013-03-04 1 views
0

У меня есть предупреждение о javascript, в котором говорится: «Круг закрыт». или «Круг закрыт. Вы не можете сделать это».Как ждатьForAlertPresent, используя регулярное выражение в PHPUnit?

Мой код в PHPUnit прямо сейчас:

$this->waitForAlertPresent('The round is closed.'); 

тест проходит, если предупреждение, но если тревога является «круглый закрыта Вы не можете сделать это действие«круглый закрыто.». «. он не работает.

Можно ли использовать регулярное выражение для waitForAlertPresent? в PHPUnit?

Я думал, что я мог бы попробовать waitForCondition и сделать preg_match, но я не думаю, что это работает, потому что его предупреждение, что всплывает

ответ

1

Как же вы не знаете, спереди, что текст предупреждения должен быть? Обычно вы должны протестировать то, что вы его настроили. И если это не то же самое, тогда тест не удастся.

Кроме того, что-то вроде ...

$this->assertEquals('The round is closed.', $this->getAlert()); 

... должно работать для вас. Вы уже нашли SeleniumTestCaseTest? Он показывает в большой простоте возможности PHPUnit_Selenium.

И от того, что мой собственный опыт Selenium2TestCase (с использованием Selenium webdriver вместо инъецированного javascript) кажется более последовательным, возможно, стоит попробовать.

EDIT Я менее знаком с Selenium RC/SeleniumTestCase, но $this->getAlert() должен дать вам текст alertbox. Тогда это было бы, конечно, так же просто, как $this->assertContains("closed", $this->getAlert()).

Но, возможно, было бы лучше также обновить ваши тесты при изменении предупреждающих сообщений ...

+0

Oh. Я забыл очень важную роль. Я могу отредактировать предупреждение, поэтому сделать его «Круглый закрыт» приведет к сбою, если я изменю его на «Round closed». Я просто хочу дождаться предупреждения и посмотреть, содержит ли оно слово закрытое, потому что иногда оповещение занимает несколько секунд, чтобы всплыть – yan

+0

Perfect! Только то, что я искал. Благодаря! – yan

Смежные вопросы