2017-06-20 2 views
0

Ich habe versucht, Login https://testinternal.com/login (interne Website) mit behat, aber ich habe den folgenden Fehler. Ich habe den Firefox-Entwickler benutzt, um die Namen der Textfelder zu prüfen, die Feldnamen stimmen mit den Feldern Benutzername und Passwort überein. Irgendwelche Ideen, warum es gescheitert ist?Login fehlgeschlagen mit behath auch die Feldnamen sind korrekt

13: 40: 34,128 INFO - Executing: [get: https://testinternal.com]) 13: 40: 34,249 INFO - Fertig: [get: https://testinternal.com/logon] 13: 40: 34,251 INFO - Executing: [Elemente: Mit dem. xpath: //html/.// [self :: Eingabe | self :: textarea | self :: select] [nicht (./@ type = 'submit' oder ./@type = 'image' oder ./@type = 'hidden')] [((./@ id = 'Benutzername' oder ./@name = 'Benutzername') oder ./@id = // label [enthält (normalize-space (string (.)), 'Benutzername')]/@ for) oder ./@placeholder = ' Benutzername ')] | .// label [enthält (normalize-space (string (.)), 'Benutzername')] //.// [self :: input | self :: textarea | self :: select] [nicht (./@ type = 'submit' oder ./@type = 'image' oder ./@type = 'hidden')]]) 13: 40: 34.270 INFO - Fertig: [ Finde Elemente: By.xpath: //html/.// [self :: input | self :: textarea | self :: select] [nicht (./@ type = 'submit' oder ./@type = 'image' oder ./@type = 'hidden')] [((./@ id = 'Benutzername' oder ./@name = 'Benutzername') oder ./@id = // label [enthält (normalize-space (string (.)), 'Benutzername')]/@ for) oder ./@placeholder = ' Benutzername ')] | .// label [enthält (normalize-space (string (.)), 'Benutzername')] //.// [self :: input | self :: textarea | self :: select] [nicht (./@ type = 'submit' oder = 'Bild' ./@type oder ./@type = 'versteckt')]]

Feature: Sign in to the website 
    In order to access the administrative interface 
     As a visitor 
     I need to be able to log in to the website 

    @javascript 
     Scenario: Log in with username and password      # features/signin.feature:7 
     Given I am on "/logon"          # Behat\MinkExtension\Context\MinkContext::visit() 
     When I fill in the following:         # Behat\MinkExtension\Context\MinkContext::fillFields() 
      | username | testuser | 
      | password | testpwd | 
      Form field with id|name|label|value "username" not found. 
     And I press "Sign in"           # Behat\MinkExtension\Context\MinkContext::pressButton() 
     Then I should be on "http://testinternal.com"     # Behat\MinkExtension\Context\MinkContext::assertPageAddress() 
     And I should see "My Flows"         # Behat\MinkExtension\Context\MinkContext::assertPageContainsText() 

    2 scenarios (2 failed) 
    10 steps (2 passed, 6 skipped, 2 failed) 

Antwort

0

ich kann sehen Sie von dem Fehler, dass das Element, das Sie suchen, versteckt ist. Selen bietet keine Interaktion mit den versteckten Elementen. Es gibt zwei Ansätze, um dieses Problem zu lösen.

Ansatz:

  1. Warten Element sichtbar zu sein. Sie können überprüfen, welche Aktion Ihr Element sichtbar ist.

  2. Sie können mit JavaScript-Executor klicken.

JavascriptExecutor js = (JavascriptExecutor) Treiber; js.executeScript ("Argumente [0] .click();", Element);

+0

Hallo @Monika, ja die Seite ist JavaScript-basierte Anwendung. Ich bin in der Lage, # 1 Ansatz zu steuern. Für # 2 Ansatz, wo sollte ich diesen JavaScript-Executor setzen? In Behat Features Datei? –

+0

Sieht aus wie für Behat, Sie können einfach dem ersten Ansatz folgen. Bitte gehen Sie voran und folgen Sie der ersten Annäherung. Ich hatte die Lösung gegeben, indem ich auf den Fehler schaute. Ich bin nicht sicher, wie der zweite Punkt in Behat ausgeführt wird, weil ich nie mit Behat gearbeitet habe. Ich kann erforschen und dich wissen lassen. – Monika

+0

Tut mir leid, ich hatte den Tippfehler, ich bin nicht in der Lage, # 1 zu kontrollieren, weil diese Anwendung vom Entwicklerteam durchgeführt wird. Meine Aufgabe ist es, die Testfälle zu automatisieren –

Verwandte Themen