2017-06-29 1 views
-2

Ich habe eine Schaltfläche auf der Seite:Suchen Sie ein div mit der Verwendung von Nerz Klasse und Behat

<div class="button wide green attached connectyourself" >Conect</div> 

möchte ich tu Druck auf dieses div, so schaffe ich die Methode:

/** 
* @When I open the connection popup 
*/ 
public function iOpenTheConnectionPopup() 
{ 
    $page = $this->getSession()->getPage(); 
    $findName = $page->find("css", '.connectyourself'); 
    if (!$findName) { 
     throw new Exception('connectyourself' . " could not be found"); 
    } else { 
     $findName->click(); 
    } 
} 

Jeder Zeit bekomme ich die Ausnahme 'connectyourself konnte nicht gefunden werden'. Können Sie mir bitte helfen?

+1

Ihre Überprüfung, ob das Element gefunden wurde, ist nicht korrekt, 'find' gibt ein Objekt oder null zurück, also sollten Sie' === null' anstelle von '! $ FindName' verwenden und überprüfen, ob Ihr Selektor eine einzige zurückgibt Element und schließlich vielleicht brauchen Sie etwas warten, überprüfen Sie hier https://stackoverflow.com/questions/42911114/fatal-error-call-to-a-member-function-press-on-a-non-object/42925010 – lauda

+0

als @lauda erwähnt, überprüfen Sie bitte Ihre if-Anweisung, und überlegen Sie, auf das Element zu warten, bevor Sie danach suchen. Schließlich können Sie Ihren CSS-Selektor zu div.connectyourself verfeinern –

Antwort

0

Ich denke, dass CSS ist nicht einzigartig. Möglicherweise gibt es mehr Elemente mit dem Klassennamen, der "connectyourself" enthält. Sie sollten versuchen, es zu finden, indem Sie einen vollen Klassennamen geben.

$findName = $page->find("css", '.button.wide.green.attached.connectyourself'); 
+0

Ich erhalte den Fehler: 'Element nicht sichtbar' – user7424312

+0

@ user7424312, haben Sie versucht, mindestens gleichen Fehler auf Google zu suchen. vor dem Einfügen des Kommentars. – NarendraR

Verwandte Themen