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;
我知道您可以从元素中获取文本,如下所示:
$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;