Laravel Dusk: 如何从元素中获取HTML?

Laravel Dusk: How to get HTML from element?

我知道您可以从元素中获取文本,如下所示:

$text = $browser->text('.selector');

我的问题是:如何获得原始 HTML 内容?例如。以下无效

$text = $browser->html('.selector');

例如如果元素是:

<div class='selector'><p>Hello</p></div>

我希望获得以下输出(带有 < p> 标签):

<p>Hello</p>

谢谢

要获取元素的源代码,您应该将 element() 方法与 getAttribute() 方法一起使用,如下所示:

$html = $browser->element('.selector')->getAttribute('innerHTML');
// now in $html you have HTML inside .selector element

更新 laravel 8.75.0 和 laravel dusk 6.19

$browser->element('yourElement')->getDomProperty('innerHTML');

我找不到获取内部文本的方法 HTML,但您可以使用 getText() 提取内部文本。

<div class='selector'><p>Hello</p></div>
<?php 
  $innerText = $browser->element('.selector p')->getText();
  // $innerText = 'Hello'
?>

在 laravel/framework 9.0.2 上试过; laravel/dusk6.22.0; php-webdriver/webdriver1.9.0;