我正在使用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是否有现成的方法来实现这一目标?
答案 0 :(得分:5)
您可以传入任何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);
}