Laravel Dusk 中是否有与 Selenium 类似的方法,通过“ innerHTML 属性”获取元素的源代码?
例如:innerHTML for<div>Hello <p>World!</p></div>
将是:
Hello <p>World!</p>
.
Laravel Dusk 中是否有与 Selenium 类似的方法,通过“ innerHTML 属性”获取元素的源代码?
例如:innerHTML for<div>Hello <p>World!</p></div>
将是:
Hello <p>World!</p>
.
要获取元素的源代码,您应该使用element()
方法,getAttribute
如下所示:
$this->browse(function(Browser $browser) {
$html = $browser->visit('/')
->element('div.content')
->getAttribute('innerHTML');
// now in $html you have HTML inside div.content element
});
请注意,如果您有多个带有给定选择器的元素,您应该使用elements()
方法并遍历找到的元素来获取它们的内容,如下所示:
$this->browse(function(Browser $browser) {
$elements = $browser->visit('/')
->elements('div.content');
$html = [];
foreach ($elements as $element) {
$html[] = $element->getAttribute('innerHTML');
}
// now in $html you have array of HTML inside div.content elements
});
我不熟悉 Selenium innerHTML
,但使用 Dusk,您可以通过$browser->assertSourceHas($code)
.
如果断言失败,您将看到您网站的完整源代码。
public function testSourceCode()
{
$this->browse(function (Browser $browser) {
$browser->visit('/')
->assertSourceHas('Hello <p>World!</p>');
});
}