2016-02-08 23 views
1

当我使用Capybara和Selenium Webdriver进行一些自动化测试时,我遇到了使用:not属性来选择没有class的元素的问题。
这是元素在我们的样本“DIV”:如何通过不使用not()来选择没有类的元素?

<div class="intro__card__container"> 
    <div class="ic--card off" id="pic1"><img alt="Image1" src="/images/landing/intro/image1.jpg" class="ic--image"></div> 
    <div class="ic--card off" id="pic2"><img alt="Image2" src="/images/landing/intro/image2.jpg" class="ic--image"></div> 
    <div class="ic--card off" id="pic3"><img alt="Image3" src="/images/landing/intro/image3.jpg" class="ic--image"></div> 
    <div class="ic--card" id="pic4"><img alt="Image4" src="/images/landing/intro/image4.jpg" class="ic--image"></div> 
    <div class="ic--card off" id="pic5"><img alt="Image5" src="/images/landing/intro/image5.jpg" class="ic--image"></div> 
    <div class="ic--card off" id="pic6"><img alt="Image6" src="/images/landing/intro/image6.jpg" class="ic--image"></div> 
    <div class="ic--card" id="pic7"><img alt="Image7" src="/images/landing/intro/image7.jpg" class="ic--image"></div> 
    <div class="ic--card off" id="pic8"><img alt="Image8" src="/images/landing/intro/image8.jpg" class="ic--image"></div> 
    <div class="ic--card off" id="pic9"><img alt="Image9" src="/images/landing/intro/image9.jpg" class="ic--image"></div> 
    <div class="ic--card off" id="pic10"><img alt="Image10" src="/images/landing/intro/image10.jpg" class="ic--image"></div> 
</div> 

我使用这个选择“.IC - 卡:不是(‘了。’)”选择没有‘关闭’类元素。它适用于jQuery,但在Selenium测试中无效。那么如何选择没有'.off'类的元素呢?

+0

你用那个选择器代码是什么?任何有效的CSS都应该直接传递给浏览器。你确定这些元素是可见的吗? –

回答

2

好的 - 再看一遍“.ic - card:not('。off')”。因为.off不会被引用为类选择器,所以.off文件不是有效的css选择器。使用

find(".ic--card:not(.off)") 

应该正常工作

+0

非常感谢,它的作品! –

2

您可以使用:

  1. CSS:

    find("div[class='ic--card']")

  2. 的XPath:

    find("//div[contains(@class,'ic--card') and not(contains(@class,'off'))]")

相关问题