首页 > 其他分享 >selenium元素定位之css选择器和xpath

selenium元素定位之css选择器和xpath

时间:2022-10-20 16:45:49浏览次数:58  
标签:xpath 匹配 标签 class 元素 selenium 节点 选择器

CSS选择器(css selector) 作用:用于定位页面上的标签元素的,找到符合选择器的标签元素,然后应用样式。 语句:dr.find_element_by_css_selector("CSS选择器") —— 根据CSS选择器   (1)标签名选择器 —— 标签名 h3 选择页面上的所有h3标签 p 选择页面上的所有p标签   (2)类样式选择器 —— .类样式名 .author 选择标签上有class="author"属性的标签   (3):ID选择器 —— #ID #ye 选择标签上有id="ye"属性的标签   (4)属性选择器 —— [属性名="属性值"] 、 [属性名] [value="登录"]        选择标签上有value="登录"属性的标签 [type="submit"]      选择标签上有type="submit"属性的标签   (5)派生选择器 由基础选择器组合在一起 .poem p        选择p标签,但p标签必须在class="poem"的标签的里面 .poem > p     选择p标签,但p标签必须在class="poem"的标签的下一级 .poem, p       选择.poem或者p标签   XPATH定位 1. 路径定位 XPATH表达式的路径一定是从HTML文件的根开始计算的。 路径的分隔符 / —— 进入到下一级 // —— 进入到下任意多级 .. —— 进入到上一级 XPATH表达式一定要有路径,路径分隔符后一定要有标签名,如果实在不知道是什么标签,可以用 *代表。    举例子: //student/name 匹配所有student标签下一级的name标签 //class/* 匹配所有class标签下一级的任意标签   2:属性,函数和位置定位    (1)属性举例: //input[@name='email']              匹配标签上有name="email"属性的input标签 //input[@value='登 录']               匹配标签上有value="登 录"属性的input标签 //p[@class='author']                   匹配标签上有class='author'属性的p标签  (2)函数举例: //p[last()]                                   匹配所有的p标签,且这些p标签必须是其父标签下的最后1个p标签 //p[position() = 2]                      匹配所有的p标签,且这些p标签必须是其父标签下的第2个p标签 //p[position() > 3]                      匹配所有的p标签,且这些p标签的位置必须大于3 //a[text()='帮助']                        匹配标签内部文本等于“帮助”的a标签 ☆☆☆===》精准匹配 //a[contains(text(), 'Pow')]        匹配所有的a标签,且这些a标签的文本中必须包含“Pow”=-==》模糊匹配 //input[@id='kw' and @class='s_ipt']          匹配所有的input标签,且这些input标签比如有id=‘kw’和class=‘s_ipt'。  同理,有not and or三种关系运算符 //标签名[@元素名称='元素值' and @元素名称='元素值'] // 标签名[@元素名称='元素值' or @元素名称='元素值'] //标签名称[@元素名称 != '元素值']   重难点===》轴定位

轴表达式说明

parent::* :表示当前节点的父节点元素

ancestor::* :表示当前节点的祖先节点元素

child::* :表示当前节点的子元素 /A/descendant::* 表示A的所有后代元素

self::* :表示当前节点的自身元素

ancestor-or-self::* :表示当前节点的及它的祖先节点元素

descendant-or-self::* :表示当前节点的及它们的后代元素

following-sibling::* :表示当前节点的后序所有兄弟节点元素

preceding-sibling::* :表示当前节点的前面所有兄弟节点元素

following::* :表示当前节点的后序所有元素

preceding::* :表示当前节点的所有元素

举例说明使用方法:

 //div[@class="cell" and text()='1338']/parent::*     =====》匹配该div上的所有父节点元素,如同即定位到392和393两个元素。

 

 

 //div[3]/table/tbody/tr[1]/td[1]/following-sibling::*     ===》匹配td【1】之后的所有兄弟元素,即下面13个td元素

 //div[3]/table/tbody/tr[1]/td[1]/following-sibling::td[2]    ===》因为*是匹配所有,想要精准匹配可以接上位置索引,这个语句则是查找td[1]下同级节点下的第二个节点      

标签:xpath,匹配,标签,class,元素,selenium,节点,选择器
From: https://www.cnblogs.com/lwcx/p/16810297.html

相关文章

  • python中的Xpath的安装及使用
    Xpath是一门在XML文档中查找信息的语言。XPath可用来在XML文档中对元素和属性进行遍历。XPath是W3CXSLT标准的主要元素,并且XQuery和XPointer都构建于XPath表......
  • python使用selenium操作浏览器
    重复的操作令手工测试苦不堪言,于是自动化测试出现了!作为web应用里最出名的自动化测试工具,selenium让web应用的测试轻松了很多。今天我们就来简单的介绍一下一些简单的sele......
  • JQuery选择器(一)
    下载的官网:​​http://www.jQuery.com​​实现的效果:代码:<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Demo.aspx.cs"Inherits="T12_选择器1_Demo"%><!DOCTY......
  • python下载站长素材免费简历模板(xpath)
    importos.pathimportrequestsfromlxmlimportetreeif__name__=='__main__':ifnotos.path.exists('./jianli'):os.mkdir('./jianli')he......
  • python+selenium环境搭建
    1、首先命令行进入到python安装目录的scripts目录下2、使用pip3installselenium,由于我是安装过的,所以会提示这个3、将谷歌浏览器的driver放到python安装目录下4、代码验证......
  • scrapy+selenium爬取网易云音乐评论
    废话不多说,先卡主代码1importscrapy2fromselenium.webdriverimportChrome3fromselenium.webdriver.common.byimportBy4importtime5fromCodeNav.i......
  • Selenium+Python系列 - 开发环境搭建
    一、写在前面我从未想过自己会写python系列的自动化文章,有些同学会问,那你现在为什么又开始写了?不止一个人找过我,问我可以写一些Python自动化的文章吗,答案是肯定的。笔......
  • selenium获取所有(包括被隐藏)的表头字段文本信息
      需要获取一个列表表头共18个字段的列表的表头其中前两个和后两个字段都在页面固定中间的字段需要根据滚动条滑动才能显示完全遇到的问题:正常按照以前的逻辑:先......
  • selenium基础之3大等待
     隐性和显性区别为:在显性的EC条件模块中,在selenium3.X当中,每一个条件都是由类实现的,每个类都有2个方法,__init__,__call__在selenium4.X当中,每一个条件是由函数实现的......
  • selenium验证码处理-获取验证码图片二进流数据转成原图保存
    1.因为视频的作者给的代码不完整,只有核心部分的代码。2.视频作者示例使用的第三方破解12306的脚本网页(失效了)所以本人无法复现,此次截取部分代码作为理解核心意思(思想方法......