selenium - 如何选择没有特定CSS属性的HTML元素

时间:2017-04-30 08:56:31

标签: python selenium xpath

HTML看起来类似于以下内容:
注意:为了获得更好的可读示例代码,我将这些类抽象为独特的,因为它们更多(由#34; ...&#34;表示。 < / p>

...
<div id=”container”>
  <div class=”classA1 classA2”>
    <div class=”classA1 classB1 classB2 classB3 ...”>
      ...
      <div class=”classC1 classC2 classC3 ...” style="...; z-index: 17;”></div>
      <div class=”classC1 classC2 classC3 ...” style="...; z-index: 30; opacity: 0.6; ”></div>
      <div class=”classC1 classC2 classC3 ...” style="...; z-index: 20;”></div>
      ...
      <div class=”classC1 classC2 classC3 ...” style="...; z-index: 24;”></div>
      <div class=”classC1 classC2 classC3 ...” style="...; z-index: 19; opacity: 0.6; ”></div>
      <div class=”classC1 classC2 classC3 ...” style="...; z-index: 27;”></div>
      <div class=”classC1 classC2 classC3 ...” style="...; z-index: 21; opacity: 0.6; ”></div>
      <div class=”classC1 classC2 classC3 ...” style="...; z-index: -15; opacity: 0.6; ”></div>
      <div class=”classC1 classC2 classC3 ...” style="...; z-index: 22;”></div>
      ...
    </div>
  </div>
</div>
...

我正在使用

elements = self.browser.find_elements_by_class_name('classC1')

选择以下元素:

  ...
  <div class=”classC1 classC2 classC3 ...” style="...; z-index: 17;”></div>
  <div class=”classC1 classC2 classC3 ...” style="...; z-index: 30; opacity: 0.6; ”></div>
  <div class=”classC1 classC2 classC3 ...” style="...; z-index: 20;”></div>
  ...
  <div class=”classC1 classC2 classC3 ...” style="...; z-index: 24;”></div>
  <div class=”classC1 classC2 classC3 ...” style="...; z-index: 19; opacity: 0.6; ”></div>
  <div class=”classC1 classC2 classC3 ...” style="...; z-index: 27;”></div>
  <div class=”classC1 classC2 classC3 ...” style="...; z-index: 21; opacity: 0.6; ”></div>
  <div class=”classC1 classC2 classC3 ...” style="...; z-index: -15; opacity: 0.6; ”></div>
  <div class=”classC1 classC2 classC3 ...” style="...; z-index: 22;”></div>
  ...

问题:

如何实现以下结果,其中仅包含 NOT(!)具有CSS属性opacity的元素:

  ...
  <div class=”classC1 classC2 classC3 ...” style="...; z-index: 17;”></div>
  <div class=”classC1 classC2 classC3 ...” style="...; z-index: 20;”></div>
  ...
  <div class=”classC1 classC2 classC3 ...” style="...; z-index: 24;”></div>
  <div class=”classC1 classC2 classC3 ...” style="...; z-index: 27;”></div>
  <div class=”classC1 classC2 classC3 ...” style="...; z-index: 22;”></div>
  ...

1 个答案:

答案 0 :(得分:2)

您可以将notstyleopacitycss_selector

一起使用
elements = self.browser.find_elements_by_css_selector('.classC1:not([style*="opacity"])')