量角器 - 无法通过 css 获取嵌套元素

Protractor - Cannot get nested element by css

从现在开始我已经在这个问题上研究了几个小时了,但我仍然坚持下去。

在这段html代码中:

<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>

对于量角器 e2e 测试,我必须在 table 中捕获第二个 tr 并使用 getLocation().

获取其坐标

这就是我应该如何捕捉 tr:

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

我怎样才能得到它的坐标:

secondRow.getLocation()

每次我尝试运行上面的代码我得到:

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

如果我使用 JQuery 在浏览器控制台中复制并粘贴 .fc-body tr .fc-time-grid-container.fc-scroller .fc-slats table tbody,它会 returns 第二个 tr 正确。

我不明白为什么不使用量角器。

太容易被抓住了...我发现了一个 beforeEach ,每次重新加载主页时,很多元素(就像那个一样)都不存在。

我不得不注意...

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

现在我可以得到那个元素了。