【问题标题】:Css selector for elements with style attribute具有样式属性的元素的 CSS 选择器
【发布时间】:2012-03-14 15:12:16
【问题描述】:

我有一个具有以下样式的元素

<ul class="textboxlist-bits" style="background-color: transparent;">

现在我想根据样式属性选择元素。

css 选择器ul [style="background-color: transparent;"] 在那里不起作用。

请建议适当的选择器来识别此类元素。

【问题讨论】:

    标签: css-selectors selenium-webdriver


    【解决方案1】:

    一种可能的解决方案是选择所有具有匹配类名的元素,然后选择具有正确样式属性的元素中的第一个。你还没有说测试是用哪种语言编写的,但是 C# 中的一个例子是:

    IWebElement element = driver.FindElements(By.CssSelector("ul.textboxlist-bits")).First(e => e.GetAttribute("style").Contains("background-color: transparent;"));

    【讨论】:

      【解决方案2】:

      我认为你只需要删除第一个空格:

      ul[style="background-color: transparent;"]
      

      现在它正在搜索所有具有这种风格的ul-tags;它之间的空格会尝试选择(!)具有此样式的ul-tag 中的所有dom元素。

      这里有一个example,带有用于 javascript 的 querySelector,它也应该适用于 selenium。

      【讨论】:

        【解决方案3】:

        也许这个http://reference.sitepoint.com/css/elementtypeselector 不确定你的意思是否类似于 c 中的 if 语句?

        [ { attribute | attribute { = | |= | ~= } attribute value } ] {
        
        declare stuff here..
        
         }
        

        这匹配任何匹配“提交”的类型输入

         input[type="submit"] {
          declarations
        }
        

        【讨论】:

        • 我需要一个 css 定位器来查找具有给定样式属性的匹配 ul 元素。这用于 selenium,我需要单击具有该特定样式的此类元素
        • 感谢输入,但此选择器不适用于 selenium。我试过这样的ul.textboxlist-bits [style] {background-color: transparent;}
        猜你喜欢
        • 2012-12-17
        • 1970-01-01
        • 2015-02-09
        • 2011-03-16
        • 2019-05-24
        • 1970-01-01
        • 2012-01-15
        • 2023-03-18
        • 2014-07-06
        相关资源
        最近更新 更多