2016-05-20 11 views
0

Ich bin seit mehreren Stunden in dieser Sache seit jetzt gewesen, und ich bin immer noch darauf fest.Winkelmesser - kann nicht verschachtelt Element von CSS

In diesem Stück HTML-Code:

<div class="container ng-scope"> 
    <div class="fc-toolbar"></div> 
    <div class="fc-view-container" style=""> 
    <div class="fc-view fc-agendaWeek-view fc-agenda-view"> 
     <table> 
      <thead class="fc-head"></thead> 
      <tbody class="fc-body"> 
       <tr> 
       <td class="fc-widget-content"> 
        <div class="fc-day-grid"></div> 
        <hr class="fc-divider fc-widget-header"> 
        <div class="fc-time-grid-container fc-scroller" style="height: 329px;"> 
         <div class="fc-time-grid"> 
          <div class="fc-bg"></div> 
          <div class="fc-slats"> 
          <table> 
           <tbody> 
            <tr> 
             <td class="fc-axis fc-time fc-widget-content" style="width: 44px;"><span>00</span></td> 
             <td class="fc-widget-content"></td> 
            </tr> 
            <tr class="fc-minor"> 
             <td class="fc-axis fc-time fc-widget-content" style="width: 44px;"></td> 
             <td class="fc-widget-content"></td> 
            </tr> 
            <tr> 
             <td class="fc-axis fc-time fc-widget-content" style="width: 44px;"><span>01</span></td> 
             <td class="fc-widget-content"></td> 
            </tr> 
            <tr class="fc-minor"> 
             <td class="fc-axis fc-time fc-widget-content" style="width: 44px;"></td> 
             <td class="fc-widget-content"></td> 
            </tr> 
            <tr> 
             <td class="fc-axis fc-time fc-widget-content" style="width: 44px;"><span>02</span></td> 
             <td class="fc-widget-content"></td> 
            </tr> 
            <tr class="fc-minor"> 
             <td class="fc-axis fc-time fc-widget-content" style="width: 44px;"></td> 
             <td class="fc-widget-content"></td> 
            </tr> 
           </tbody> 
          </table> 
          </div> 
         </div> 
        </div> 
       </td> 
       </tr> 
      </tbody> 
     </table> 
    </div> 
    </div> 

Für einen Transporteur e2e Test, ich habe die zweite tr innerhalb der Tabelle zu fangen und seine Koordinaten erhalten getLocation() verwenden.

Dies ist, wie ich sollte die tr fangen:

var secondRow = element(by.css('.fc-body tr .fc-time-grid-container.fc-scroller .fc-slats table tbody tr:nth-child(2)')); 

Und wie kann ich seine Koordinaten erhalten:

secondRow.getLocation() 

Jedes Mal, wenn ich versuche, den obigen Code ausführen ich habe:

NoSuchElementError: No element found using locator: By.cssSelector(".fc-body tr .fc-time-grid-container.fc-scroller .fc-slats table tbody") 

Wenn ich kopieren & einfügen .fc-body tr .fc-time-grid-container.fc-scroller .fc-slats table tbody in der Browser-Konsole mit JQuery, es gibt die zweite tr korrekt zurück.

Ich kann nicht herausfinden, warum nicht mit Winkelmesser arbeitet.

+0

Ist die Tabelle in einem iframe? Versuchen Sie, noch etwas Schlaf hinzuzufügen? – Buaban

+0

Die Tabelle ist kein iframe. Der obige Code wurde aus dem Vollkalender genommen. Hinzufügen schläft das Problem noch sein. – grimi

+0

Gibt es einen bestimmten Grund, warum Sie css-selector verwenden? – RemcoW

Antwort

1

Es war zu einfach, eingefangen zu werden ... Ich habe ein Vorher gefundenJedes Mal, dass jedes Mal die Hauptseite neu geladen wurde, so viele Elemente (genau so) nicht vorhanden waren.

Ich hatte darauf achten ...

beforeEach(function() { 
    browser.get('http://localhost:9000/#/');//<--- ...to this line! 
}); 

Jetzt kann ich dieses Element erhalten.

Verwandte Themen