我正在使用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);
}