我有一個列在非角度頁面上的應用程序列表。可用的應用程序列表取決於已支付的訂閱級別。如果訂閱級別沒有購買應用程序,則應用程序仍然列出,但是應用程序覆蓋了該應用程序。 (請看照片)。檢查以查看元素是否可見
的HTML如下:
<div class="apps-item apps-no-border disabled">
<div class="apps-name">
<span>Interactive Event Diagrams</span>
</div>
<div class="divider">
<div class="apps-description">Interactive Event Diagrams is an indispensable online tool, allowing website visitors to view your meeting rooms and create their own customized event layouts according to their specific needs, all while using your venue’s available inventory. Users
can email and save diagrams or images for future reference.</div>
<div class="apps-image-preview">
<img alt="Interactive Event Diagrams" src="/Content/Images/AppsPreview/interactive_event_diagrams.png">
</div>
<div class="apps-action">Not Purchased</div>
<div class="overlay"></div>
</div>
</div>
現在,如果一個應用程序被購買的覆蓋元素在HTML的灰色陰影,而不是視圖,能夠在屏幕。 (例如Hotel Venue Explorer上沒有灰色陰影)我希望能夠檢查並查看疊加層是否被看到或看不到。
我已經試過這樣:
elm = element.all(by.css('div.apps-item')).get(5);
expect(elm.$('div.overlay').isDisplayed()).toBeTruthy();
然而,想到的是返回false。 其他應用程序的HTML,注意到灰色在覆蓋類
你不應該只是檢查元素'hasClass('overlay')'? – dcohenb
@dcohenb他們都有在html中的類。我添加了其他應用程序html的外觀圖片。 –
你的'div.overlay'將始終在DOM中,但它會根據訂閱級別使用css和javascript進行更改。是對的嗎?對於一種預訂級別的前 - 應用div.overlay,如果訂閱存在,則不應用它。或者,如果它不需要特定的div.apps-item,它會從DOM中刪除嗎?謝謝 –