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