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

sha*_*ham 1 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?

Dav*_*ess 5

您可以传入任何Xpath来定位所需的元素.

$this->assertElementContainsText(
    "//p[@id='foo']/a[@href='http://www.example.com/']",
    'bar'
);
Run Code Online (Sandbox Code Playgroud)

您可以将以下内容添加到基类中,以允许测试内容的完全匹配.

/**
 * 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);
}
Run Code Online (Sandbox Code Playgroud)