0

Gibt es einen ähnlichen Weg in Laravel Dusk wie wir in Selen haben, um den Quellcode eines Elements von "innerHTML Attribut" zu bekommen?Erhalten Sie den Quellcode eines Elements

Beispiel: innerHTML für <div>Hello <p>World!</p></div> wäre: Hello <p>World!</p>.

+0

Hat diese Hilfe nicht? [get-html-Quelle-von-Webelement-in-Selen-Webdriver-Using-Python] (https://stackoverflow.com/questions/7263824/get-html-source-of-webelement-in-selenium-webdriver- using-python) – Hamzaaton

+0

Ich suche eine Dusk-Lösung. – shaebi

Antwort

2

Um Quellcode des Elements erhalten Sie element() Methode zusammen mit getAttribute wie folgt verwenden sollte:

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

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

    // now in $html you have HTML inside div.content element 
}); 

Bitte beachten Sie, falls Sie mehrere Elemente mit bestimmten Wähler haben, sollten Sie über verwenden elements() Methode und iterieren gefundene Elemente, um ihren Inhalt wie folgt zu erhalten:

$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 
}); 
+0

Vielen Dank. Kannst du mich auf die richtige Dusk-Dokumentation mit allen verfügbaren Befehlen/Methoden hinweisen? Sind 'Element' und 'GetAttribute' Dusk Methoden oder PHP Selenium Befehle? – shaebi

+0

Sie können die Dateien 'vendor/laravel/dusk/Concerns' betrachten. In 'InteractsWithElements' finden Sie Elemente und Elementmethoden. Aber "getAttribute" -Methode ist von FaebookWebDriver - dies ist in 'Facebook \ WebDriver \ Remote \ RemoteWebElement' Klasse –

+0

Danke, ich fand sie unter' vendor/laravel/dusk/src/Bedenken/InteractsWithElements.php' und 'vendor/Facebook/WebDriver/lib/Remote/RemoteWebElement.php'. – shaebi

2

Ich bin Selenium innerHTML nicht vertraut, aber mit Dusk können Sie direkt gegen den Quellcode über $browser->assertSourceHas($code) geltend machen.

Sie erhalten den vollständigen Quellcode Ihrer Site, wenn die Assertion fehlschlägt.

public function testSourceCode() 
    { 
     $this->browse(function (Browser $browser) { 
      $browser->visit('/') 
        ->assertSourceHas('Hello <p>World!</p>'); 
     }); 
    } 
+0

Mit assertSourceHas kennen Sie bereits den Quellcode, aber durch innerHTML erhalten Sie den Wert eines unbekannten Quellcodes. – shaebi

Verwandte Themen