将PHPUnit与Selenium一起使用,如何测试元素是否包含某些内容?

时间:2012-02-07 22:31:41

标签: php testing selenium phpunit

我正在使用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是否有现成的方法来实现这一目标?

1 个答案:

答案 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);
}