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

Python selenium-如何选择没有特定CSS属性的HTML元素,python,selenium,xpath,Python,Selenium,Xpath,HTML看起来类似于以下内容: 注意:为了有更好的可读性示例代码,我将类抽象为唯一的类,因为它们更多(由“…”表示) 要选择以下元素: ... <div class=”classC1 classC2 classC3 ...” style="...; z-index: 17;”></div> <div class=”classC1 classC2 classC3 ...” style="...; z-index: 30; opacity: 0.6; ”&g

HTML看起来类似于以下内容:
注意:为了有更好的可读性示例代码,我将类抽象为唯一的类,因为它们更多(由“
”表示)

要选择以下元素:

  ...
  <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
style
一起使用,将
opacity
css\u选择器一起使用

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

您可以将
not
style
一起使用,将
opacity
css\u选择器一起使用

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

我担心这会是一件“容易”的事。。。你的回答让我更接近了。classC1:不是([style]),但不是样式属性不透明度。:“简单”。谢谢我试过使用contains(@style,'opacity'),但很困难…@udo
css\u选择器没有
contains
,只有
xpath
是的。与xpath斗争。。。我不认为这在
find\u elements\u by\u css\u selector()
yups中是可能的。运行
find\u elements\u by_css_selector('.classC1:not([style*=“opacity”])”
会抛出错误
selenium.common.exceptions.InvalidSelectorException:Message:给定的css选择器表达式“.classC1:not([style*=“opacity”])无效:语法错误:'.classC1:not([style*=“opacity”]))'不是有效的选择器
显然selenium会自动添加类。''。注意:我正在运行selenium 3.4.1I,我担心这会很“简单”:。。。你的回答让我更接近了。classC1:不是([style])
,但不是样式属性不透明度。:“简单”。谢谢我试过使用contains(@style,'opacity'),但很困难…@udo
css\u选择器没有
contains
,只有
xpath
是的。与xpath斗争。。。我不认为这在
find\u elements\u by\u css\u selector()
yups中是可能的。运行
find\u elements\u by_css_selector('.classC1:not([style*=“opacity”])”
会抛出错误
selenium.common.exceptions.InvalidSelectorException:Message:给定的css选择器表达式“.classC1:not([style*=“opacity”])无效:语法错误:'.classC1:not([style*=“opacity”]))'不是有效的选择器
selenium会自动添加类“”。注意:我正在运行selenium 3.4.1
  ...
  <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>
  ...
elements = self.browser.find_elements_by_css_selector('.classC1:not([style*="opacity"])')