ich verwende Codeception 2.2.6 eine Laravel App zu testen. Ich habe einen einfachen Test, der eine Seite mit einem Formular öffnet, einige Felder füllt und dann auf eine Schaltfläche klickt. Wenn ich den Test ausführen es funktioniert, bis der Klick Schritt in Ordnung und dann scheitert es mit dem folgenden Fehler:
[ErrorException] Undefined property: DOMDocument::$tagName
Der Stack-Trace zeigt, dass der Fehler aus dem clickButton
Verfahren in Codeception\Lib\InnerBrowser.php
angehoben wird:
/**
* Clicks the link or submits the form when the button is clicked
* @param \DOMNode $node
* @return boolean clicked something
*/
private function clickButton(\DOMNode $node)
{
$formParams = [];
$buttonName = (string)$node->getAttribute('name');
$buttonValue = $node->getAttribute('value');
if ($buttonName !== '' && $buttonValue !== null) {
$formParams = [$buttonName => $buttonValue];
}
while ($node->parentNode !== null) {
$node = $node->parentNode;
if ($node->tagName === 'a') {
$this->openHrefFromDomNode($node);
return true;
} elseif ($node->tagName === 'form') {
$this->proceedSubmitForm(
new Crawler($node),
$formParams
);
return true;
}
}
return false;
}
Ich habe andere ähnliche Tests, klicken Sie auf verschiedene Seiten ohne Probleme. Könnte mir jemand helfen herauszufinden, was den Fehler verursacht
Können Sie ein Problem bei https://github.com/Codeception/Codeception/issues erhöhen und ein HTML-Beispiel bereitstellen, das diesen Fehler verursacht hat? Danke – Naktibalda
Hier gehts: https://github.com/Codeception/Codeception/issues/3783. Es stellt sich heraus, dass es sich nicht um ein falsch geschlossenes Tag handelte, sondern um ein falsch geöffnetes Form-Tag. Ich habe meine Antwort oben bearbeitet, um klarer zu sein. – ralbatross