【问题标题】:Laravel Dusk: How to get HTML from element?Laravel Dusk:如何从元素中获取 HTML?
【发布时间】:2019-09-24 23:10:02
【问题描述】:
我知道您可以从元素中获取文本,如下所示:
$text = $browser->text('.selector');
我的问题是:如何获取原始 HTML 内容?例如。以下不起作用
$text = $browser->html('.selector');
例如如果元素是:
<div class='selector'><p>Hello</p></div>
我想得到以下输出(带有
标签):
<p>Hello</p>
谢谢
【问题讨论】:
标签:
laravel
laravel-5
laravel-dusk
【解决方案1】:
我找不到获取内部 HTML 的方法,但您可以使用 getText() 提取内部文本。
<div class='selector'><p>Hello</p></div>
<?php
$innerText = $browser->element('.selector p')->getText();
// $innerText = 'Hello'
?>
在 laravel/framework 9.0.2 上试过; laravel/黄昏 6.22.0; php-webdriver/webdriver 1.9.0;
【解决方案2】:
更新 laravel 8.75.0 和 laravel 黄昏 6.19
$browser->element('yourElement')->getDomProperty('innerHTML');
【解决方案3】:
要获取元素的源代码,您应该使用element() 方法和getAttribute(),如下所示:
$html = $browser->element('.selector')->getAttribute('innerHTML');
// now in $html you have HTML inside .selector element