首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >量角器,如何使用父元素的类名获取图像元素

量角器,如何使用父元素的类名获取图像元素
EN

Stack Overflow用户
提问于 2018-06-15 23:43:56
回答 1查看 896关注 0票数 0

我需要检查我的html页面中的所有卡片容器,是否存在相关的图像。我在这个页面中有许多图像标签,所以我不能仅通过标签名称来获取元素。

下面是我的html:

代码语言:javascript
复制
<div class="card-container">
  <div class="images">
      <a href="https://www.example.com/" target="_blank" rel="noopener noreferrer" class="card-image" title="Vet side" data-linktext="Vet's Side:1:" data-contentname="" data-contenttype="image" data-componentname="VetImage" data-is-click-tracking-enabled="true">
        <div class="image-loader" style="height: 258px; display: inline;">
          <picture>
            <source srcset="/path/for/an/image.jpg.image.740.555.high.jpg 1x,/path/for/an/image.jpg.image.1480.1110.high.jpg 2x" media="(min-width: 1025px)">
            <source srcset="/path/for/an/image.jpg.image.1024.768.medium.jpg 1x,/path/for/an/image.jpg.image.2048.1536.medium.jpg 2x" media="(min-width: 768px)">
            <source srcset="/path/for/an/image.jpg.image.375.281.low.jpg 1x,/path/for/an/image.jpg.image.750.563.low.jpg 2x" media="(min-width: 0px)">
            <img src="/path/for/an/image.jpg.image.750.563.low.jpg" class="" alt="">
          </picture>
        </div>
      </a>
  </div>

我的stepdefinition.js:

代码语言:javascript
复制
let card_container = element.all(by.css('.card-container'));
      card_container.count().then(function(value){
            let cards_count = value;
            console.log('cards count is: ', cards_count);
      })
      next();

如我的步骤定义所示,我可以获得卡片的数量。目前我有4个卡片容器,里面有相同的结构和相同的标签。我必须检查,如果我有一个卡片容器,我也有一个相关的图像。有人能帮我吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-16 08:58:08

您可以在特定卡的定位器中链接图像元素的定位器。我的示例检查一张卡是否有图像,但您可以将其调整为适用于容器。

代码语言:javascript
复制
describe('illustrates finding images within cards', function() {
it('finds all cards and checks for images', function() {
    browser.waitForAngularEnabled(false);
    browser.ignoreSynchronization = true;
    browser.get('https://materializecss.com/cards.html');
    element.all(by.css('.card-container')).each(function(card, index) {
        card.element(by.tagName('img')).isPresent().then(function(present) {
            if(!present) {
                console.log('The '+index +'th card not display image');
            } 

            expect(present).toEqual(true); // use jasmine assertion api
        });
    })
}, 2 * 60 * 1000); //should always come up within 2 minutes
}); //end of describe

因为我测试的页面不是有角度的,所以我相应地进行了设置。.each对所有人找到的每个元素执行相同的操作。链接对myElement的调用不起作用,所以我通过索引和检查isPresent()来避免在找不到图像时出现错误(它还让我知道是否找到了图像)。我假设每张卡只有一张图片。如果没有,您可能希望放入一个.first(),以避免关于有多少和Protractor使用了第一个的消息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50878887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档