获取元素的源代码

sha*_*ebi 3 webdriver laravel selenium-webdriver laravel-5 laravel-dusk

Laravel Dusk是否有和Selenium中类似的方式,可以通过“ innerHTML属性 ” 获取元素的源代码?

例如:innerHTML for <div>Hello <p>World!</p></div>将是: Hello <p>World!</p>

Mar*_*łek 9

要获取元素的源代码,应将element()method与以下代码一起使用getAttribute

$this->browse(function(Browser $browser) {

    $html = $browser->visit('/')
                    ->element('div.content')
                    ->getAttribute('innerHTML');

   // now in $html you have HTML inside div.content element
});
Run Code Online (Sandbox Code Playgroud)

请注意,如果给定选择器包含多个元素,则应使用elements()method并遍历找到的元素以获取其内容,如下所示:

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