Selenium基础 — CSS选择器定位大全

这篇具有很好参考价值的文章主要介绍了Selenium基础 — CSS选择器定位大全。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、css属性定位

css选择器策略 示例 说明
#id #telA 选择id="telA"的所有元素。
.class .telA 选择 class="telA”的所有元素。
[属性名=属性值] [name=telA] 除了id和class属性,其他属性的定位格式
[attribute] [target] 选择带有target 属性所有元素。
* * 选择所有元素。

2、css属性值模糊匹配定位

css选择器策略 示例 说明
[attribute^=value] a[src^="https"] 选择其src 属性值以"https”开头的每个<a>元素。
[attribute$=value] a[src$=".pdf"] 选择其src属性以".pdf“结尾的所有<a>元素。
[attribute*=value] a[src*="abc"] 选择其src 属性中包含“abc"子串的每个<a>元素。
[attribute~=value] a[title~=flower] 定位标签属性title值中有独立flower词汇的节点
[attribute =value] a[lang =en] 用于选取带有以指定值开头的属性值的元素。

注意:[attribute|=value]
该值必须是整个单词,比如 lang="en",或者后面跟着连字符,比如 lang="en-us"。

3、css标签定位

css选择器策略 示例 说明
element p 定位所有<p>元素。
标签名[属性名=属性值] input#telA 定位id属性值为telA的所有<input>元素

4、css层级关系定位

css选择器策略 示例 说明
element,element div,p 选择所有 <div> 元素和所有 <p> 元素。
element element div p 选择 <div> 元素内部的所有 <p> 元素。包括子孙后代。
element>element div>p 选择父元素为 <div> 元素的所有 <p> 元素。只包括子代。
element+element div+p 选择紧接在 <div> 元素之后的所有 <p> 元素。同辈元素。

示例:

css选择器策略 示例 说明
需要使用 > 或 空格表示层级关系 语法
父标签名[父标签属性名=属性值]>子标签名 p#p1>input 定位id属性值为p1的<input>元素
父标签名[父标签属性名=属性值] 子标签名 p#p1 input 同上

5、css索引定位

css选择器策略 示例 说明
:only-child p:only-child 选择属于其父元素的唯一子元素的每个 <p> 元素。
:nth-child(n) p:nth-child(2) 选择属于其父元素的第二个子元素的每个 <p> 元素。
:nth-last-child(n) p:nth-last-child(2) 同上,从最后一个子元素开始计数。
:nth-of-type(n) p:nth-of-type(2) 选择属于其父元素第二个 <p> 元素的每个 <p> 元素。
:nth-last-of-type(n) p:nth-last-of-type(2) 同上,但是从最后一个子元素开始计数。

6、css逻辑运算定位

css选择器策略 逻辑定位
示例 标签名[属性名1=属性值1][属性名2=属性值2]
示例 input[type='telA'][placeholder='电话A']
说明 同时匹配多个属性

7、css元素状态定位

选择器 例子 例子描述
:empty p:empty 选择没有子元素的每个 <p> 元素(包括文本节点)。
:target #news:target 选择当前活动的 #news 元素。
:enabled input:enabled 选择每个启用的 <input> 元素。
:disabled input:disabled 选择每个禁用的 <input> 元素
:checked input:checked 选择每个被选中的 <input> 元素。
:not(selector) :not(p) 选择非 <p> 元素的每个元素。

七 、总结

  • 如果元素有明确idnameclass属性时,使用对应的基本定位方法。
  • 如果没有idnameclass属性时,或idnameclass属性是动态/不唯一的时候,使用XPathcss_selector定位。
  • 定位页面超链接使用link_textpartial_link_text定位
  • 可使用XPathcss_selector定位的时候,优先使用css_selector
    css_selector定位的速度和效率比Xpath高。
  • 没有最好的,只有最精简的,怎么简单怎么来。

扩展:为什么css_selector定位的速度和效率比Xpath高?
因为你无论用那种方式定位,最终都会转换到css_selector进行元素定位。
我们可以在PyCharm中,安装ctrl点击对应的方法,进行查看源码,最终都会定位到如下代码:

    def find_element(self, by=By.ID, value=None):
        """
        Find an element given a By strategy and locator. Prefer the find_element_by_* methods when
        possible.

        :Usage:
            element = driver.find_element(By.ID, 'foo')

        :rtype: WebElement
        """
        if self.w3c:
            if by == By.ID:
                by = By.CSS_SELECTOR
                value = '[id="%s"]' % value
            elif by == By.TAG_NAME:
                by = By.CSS_SELECTOR
            elif by == By.CLASS_NAME:
                by = By.CSS_SELECTOR
                value = ".%s" % value
            elif by == By.NAME:
                by = By.CSS_SELECTOR
                value = '[name="%s"]' % value
        return self.execute(Command.FIND_ELEMENT, {
            'using': by,
            'value': value})['value']

最好我这里给你们分享一下我所积累和真理的文档和学习资料有需要是领取就可以了

1、学习思路和方法

这个大纲涵盖了目前市面上企业百分之99的技术,这个大纲很详细的写了你该学习什么内容,企业会用到什么内容。总共十个专题足够你学习
 

Selenium基础 — CSS选择器定位大全

2、想学习却无从下手,该如何学习?

这里我准备了对应上面的每个知识点的学习资料、可以自学神器,已经项目练手。

Selenium基础 — CSS选择器定位大全

Selenium基础 — CSS选择器定位大全

3、软件测试/自动化测试【全家桶装】学习中的工具、安装包、插件....

Selenium基础 — CSS选择器定位大全

Selenium基础 — CSS选择器定位大全

Selenium基础 — CSS选择器定位大全

4、有了安装包和学习资料,没有项目实战怎么办,我这里都已经准备好了往下看

Selenium基础 — CSS选择器定位大全

最后送上一句话:
世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。
如果我的博客对你有帮助、如果你喜欢我的文章内容,请 “点赞” “评论” “收藏” 一键三连哦

Selenium基础 — CSS选择器定位大全文章来源地址https://www.toymoban.com/news/detail-409796.html

到了这里,关于Selenium基础 — CSS选择器定位大全的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • selenium 元素定位攻略大全

    元素名称 描述 Webdriver API id id属性 driver.find_element(By.ID, \\\"id属性值\\\") name name属性 driver.find_element(By.NAME, \\\"name属性值\\\") class_name class属性 driver.find_element(By.CLASS_NAME, \\\"class_name属性值\\\") tag_name 标签名 driver.find_element(By.TAG_NAME, \\\"标签名\\\") link_text a元素的文本内容-精准匹配 driver.find_elemen

    2024年04月12日
    浏览(64)
  • 一、selenium元素定位方式大全

    根据name定位,name元素可能不是唯一的。如果出现重名的元素,定位有可能不准确 如果只出现一次就可以精准定位 根据name定位,name元素可能不是唯一的。如果出现重名的元素,定位有可能不准确 如果只出现一次就可以精准定位 link_text 只能使用精准的匹配(a标签的全部文本

    2024年02月02日
    浏览(70)
  • java selenium (五) 元素定位大全

    页面元素定位是自动化中最重要的事情, selenium Webdriver 提供了很多种元素定位的方法。  测试人员应该熟练掌握各种定位方法。 使用最简单,最稳定的定位方法。 在自动化测试过程中, 测试程序通常的操作页面元素步骤 1. 找到Web的页面元素,并赋予到一个存储对象中 (W

    2023年04月08日
    浏览(104)
  • CSS选择器分类大全

    选择器(选择符)就是根据不同需求把不同的标签选出来这就是选择器的作用。 简单来说,就是选择标签用的。 分类: 基础选择器、复合选择器 一、基础选择器  二、复合选择器 三、CSS3选择器补充: (一)层级选择器:  (二)属性选择器 (三)伪类选择器 1、 标签选择器

    2024年02月04日
    浏览(37)
  • CSS选择器大全

    CSS选择器是一种用于选择HTML或XML文档中特定元素的模式。允许你根据元素的标签名、类名、ID、属性等来选择元素,并将样式应用于这些选中的元素 基本选择器 通配配选择器 通配选择器:可以选中所有的HTML元素 通配选择器使用 符号 * ,命中页面所有的元素 语法 通配选择器在

    2024年02月05日
    浏览(32)
  • CSS选择器-CSS3属性

    持续更新… 1、CSS3的概念和优势 CSS3是CSS技术的升级版本,CSS3语言开发是朝着模块化发展的。以前的规范作为一个模块实在是太庞大而且比较复杂,所以,把它分解为一些小的模块,更多新的模块也被加入进来。这些模块包括:盒子模型、列表模块、超链接方式、语言模块、

    2024年02月11日
    浏览(42)
  • selenium css定位

    selenium中的css定位,实际是通过css选择器来定位到具体元素,css选择器来自于css语法 语法简洁 对比其他定位方式,定位效率更快 对比其他定位方式,定位更稳定 方法1:在浏览器开发者模式的elements中,Ctrl+F搜索栏输入css表达式 方法2:在浏览器开发者模式的console中,按如下

    2024年02月03日
    浏览(44)
  • selenium css 定位详解

    1.属性定位 id 属性 : #root class 属性 :.ant-layout-content 或 div.ant-layout-content 标签加其他属性:tbody[role=\\\"listbox\\\"]  / tr[role^=row](以row 开头) / [class$=container](以container 结尾) / [class*=container] 包含container     2.层级关系定位 trtddiv 3.索引定位 ulli:nth-child(2) a 4.兄弟元素定位 i.flag-icon

    2024年02月13日
    浏览(44)
  • 【UI自动化】selenium元素定位各种框实例操作大全

    Text: 元素是input标签但是不能输入内容 第五个input输入框, disabled 属性被设置为 \\\"true\\\" 。 它被禁用了无法接收用户的输入。 第六个input输入框, readonly 属性指示该元素是否只读 ,如果设置了该属性,表示该元素只读不可编辑。因此,当 readonly 属性存在时,该输入框是不可

    2024年01月18日
    浏览(51)
  • 4 CSS属性选择器

    4 属性选择器 属性选择器是通过元素的属性及属性值来选择元素的。下面介绍属性选择器的用法。 第一种用法 示例如下: 运行结果: 第二种用法 示例如下: 运行结果: 第三种用法 示例如下: 第四种用法 执行结果: 第五种用法 执行结果: 总结如下:

    2024年02月12日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包