CsQuery获取IDomObject元素的完整CSS选择器

一、方法说明

通过IDomObject元素,获取完整的CSS选择器,过滤HTML和BODY元素,自动将class、id添加到选择器上,优先添加class,无class再添加id。如:

<html>
 <head></head>
 <body>
  <div id="result">
   <h3 class="t"><a "="" href="http://www.baidu.com/link?url=PgEyrxusTKZjg64DFOd_qlTy4o7dXLH_26WOy1mg6JUwVE4L_KrH24eG7s49yN8R-iBqQEb80m2gLmAzab8FIK&amp;ck=4276.4.1526360648567.0.0.250.568.0&amp;shh=www.baidu.com&amp;sht=baidu" target="_blank">CSS教程</a></h3>
  </div>
 </body>
</html>

a元素的完整的CSS选择器为:DIV#result H3.t A

二、方法实现

public string GetFullCssSelector(IDomObject dom)
{
    string str = "";
    while (dom != null && dom.NodeName != null)
    {
        string nodeName = dom.NodeName;
        if (!(new[] {"HTML", "BODY"}.Contains(nodeName))) //过滤HTML、BODY
        {
            if (dom.HasAttribute("class"))
            {
                string s = dom.Attributes["class"];
                s = s.Replace("  ", " ").Replace("  ", " ").Replace("  ", " ");
                string[] strings = s.Split(‘ ‘);
                foreach (string str2 in strings)
                {
                    nodeName += "." + str2;
                }
            }
            else if (dom.HasAttribute("id"))
            {
                nodeName += "#" + dom.Attributes["id"];
            }
            str = nodeName + " " + str;
        }
        dom = dom.ParentNode;
    }
    return str.Trim();
}

--版权信息--

转载请标明文章出处,谢谢!

文章作者:易几 http://www.cnblogs.com/InfoStudio/

--版权信息--

原文地址:https://www.cnblogs.com/InfoStudio/p/9040474.html

时间: 2024-11-05 21:34:01

CsQuery获取IDomObject元素的完整CSS选择器的相关文章

元素定位之css选择器

理论学习地址:https://www.runoob.com/cssref/css-selectors.html 使用实例: 1. 2. 特别说明:其中 class="form-control selected checked ng-untouched ng-pristine ng-invalid",是指一个或多个类名(classname),定位时使用其中一个或多个即可 3. [attribute*=value] a[src*="runoob"] 选择每一个src属性

Python快速开发分布式搜索引擎Scrapy精讲—css选择器

css选择器 1. 2. 3. ::attr()获取元素属性,css选择器 ::text获取标签文本 如果你依然在编程的世界里迷茫,可以加入我们的Python学习扣qun:784758214,看看前辈们是如何学习的.交流经验.从基础的python脚本到web开发.爬虫.django.数据挖掘等,零基础到项目实战的资料都有整理.送给每一位python的小伙伴!分享一些学习的方法和需要注意的小细节,点击加入我们的 python学习者聚集地 举例: extract_first('')获取过滤后的数据,

第 13 章 CSS 选择器[上]

学习要点: 1.选择器总汇 2.基本选择器 3.复合选择器 4.伪元素选择器 主讲教师:李炎恢 本章主要探讨 HTML5 中 CSS 选择器,通过选择器定位到想要设置样式的元素.目前 CSS 选择器的版本已经升级至第三代,即 CSS3 选择器.CSS3 选择器提供了更多.更丰富的选择器方式,主要分为三大类. 一.选择器总汇 本节课主要涉及到三种选择器:基本选择器.复合选择器和伪元素选择器,具体如下: 选择器 名称 说明 CSS 版本 * 通用选择器 选择所有元素 2 <type> 元素选择器

第七十节,css选择器

css选择器 学习要点: 1.选择器总汇 2.基本选择器 3.复合选择器 4.伪元素选择器 本章主要探讨 HTML5中  CSS选择器,通过选择器定位到想要设置样式的元素.目前CSS选择器的版本已经升级至第三代,即  CSS3选择器.CSS3选择器提供了更多.更丰富的选择器方式,主要分为三大类. 一.选择器总汇     本节课主要涉及到三种选择器:基本选择器.复合选择器和伪元素选择器,具体如下:          选择器               名称                    说

css两个紧挨着的css选择器修饰同一个元素

#status, .commands{ height: 25px; line-height: 25px;}.upload .commands{ float: right;}.hidden{ display: none;}#status{ float: left; font-size: 12px;}#status.error{ color: Red; width: 100%;}#status.info{ color: #333; width: 100%;}#status.success{ colo

getComputedStyle currentStyle 获取当前元素所有最终使用的CSS属性值

object.getComputedStyle  获取当前元素所有最终使用的CSS属性值.返回的是一个CSS样式声明对象,只读,不能设置. 此方法不兼容IE8及以下,需用currentStyle方法. function getStyle(obj.attr){ return getComputedStyle(obj)?getComputedStyle(obj)[attr]:obj.currentStyle[attr]; //判断是否有getComputedStyle方法 } obj为需要获取属性值

css 选择器 &amp; UI元素的伪类选择器 &amp; 伪元素选择器

UI元素的伪类选择器 1. :focus  用来选取获取焦点事件 2. :enabled 用来指定当元素处于可用状态时的样式 3. :disable  用来指定元素处于不可用时的状态    表单里应用较多 4. read-only 用来获取元素属于只读状态时 5. read-write 用来匹配可读和可写的元素  input search 6. :checked  用来获取单选框处于选取状态时的样式 7. :default 选取用来选取,打开时默认选取状态时单选框 8.     :indeter

Jquery 库详解 ---3.2 以CSS 选择器访问DOM元素

<!DOCTYPE html> <html> <head> <meta name="author" content="Yeeku.H.Lee(CrazyIt.org)" /> <meta http-equiv="Content-Type" content="text/html; charset=GBK" /> <title> 使用jQuery()函数 &l

使用CSS选择器定位页面元素

摘录:http://blog.csdn.net/defectfinder/article/details/51734690 CSS选择器也是一个非常好用的定位元素的方法,甚至比Xpath强大.在自动化里我们用CSS选择器来定位页面元素一定要牢记一个准则:唯一定位,通常使用CSS选择器修改样式时会尽量多的选择元素,但是,在自动化里,必须要唯一定位到元素,否则自动化很可能因为找不到页面元素而失败.CSS选择器有很多,像标签选择器.类选择器.ID选择器.关系选择器.伪类选择器.分组选择器等等,但是只需