将PHPUnit与Selenium一起使用,如何测试元素是否包含确切的内容


Using PHPUnit with Selenium, how can I test that an element contains exactly something?

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