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

Я использую 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?

Вы можете передать любой 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); }