Используя PHPUnit с Selenium, как я могу проверить, что элемент содержит что-то точно? - PullRequest
1 голос
/ 08 февраля 2012

Я использую PHPUnit и Selenium, и в настоящее время использую что-то вроде $this->assertElementContainsText('id=foo', 'bar'), которое проходит, когда находит это: <p id="foo">bar</p>

Однако я также пытаюсь проверить случай, когда p#foo может содержать другой HTML, и я хочу проверить, что содержимое соответствует точно . На мой взгляд, это будет выглядеть примерно так: $this->assertElementTextEquals('id=foo', '<a href="http://www.example.com/">bar</a>').

Существует ли способ достичь этого с помощью PHPUnit и Selenium?

1 Ответ

5 голосов
/ 08 февраля 2012

Вы можете передать любой Xpath для нацеливания на нужный элемент.

$this->assertElementContainsText(
    "//p[@id='foo']/a[@href='http://www.example.com/']",
    'bar'
);

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

/**
 * Asserts that an element contains exactly a given string.
 *
 * @param  string $locator
 * @param  string $text
 * @param  string $message
 */
public function assertElementTextEquals($locator, $text, $message = '')
{
    $this->assertEquals($text, $this->getText($locator), $message);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...