Selenium定位—CSS

CSS定位

浏览器检查元素定位方法

示例:https://www.12306.cn/index/index.html

  定位,出发地输入框元素

  • 在Console输入 $$() ,括号中填写CSS定位语句

    • 查询结果显示为1条

      如图:输入 $$("#fromStationText")  ,点击回车,即可显示查询结果

        鼠标放在查询结果 0:  上面,则会在web界面上高亮显示该位置

        鼠标点击查询结果 0:  ,则会跳到 Elements 界面,并高亮显示定位的元素

    • 查询结果显示为多条  

      如图:输入 $$(".form-bd .input-city input") ,点击回车,即可查看查询结果

        当结果不唯一时,就需要重新找到唯一定位

  • 在 Elements 界面,键盘点击 Ctrl + F ,在查询框内输入 CSS 语句

    • 查询结果显示为1条

      如图:输入 #fromStationText,若存在该元素,则定位到该元素位置,并高亮显示

      查询结果如果只有一条,则会显示 1 of 1

    • 查询结果显示为多条  

      如图:输入.form-bd .input-city input 即可查看查询结果

      当结果不唯一时,会高亮显示第一个结果,查询结果处 1 of 12 是指,该查询结果共 12 个,当前高亮显示为第 1 个

CSS定位方法:

CSS选择器参考手册:http://www.w3school.com.cn/cssref/css_selectors.asp

以百度首页输入框示例

根据属性定位元素

  • id

    • 语法:#id的属性值
    • 示例:定位输入框 ==> #kw
  • class
    • 语法:.class的属性值(英文状态下的 点(.))
    • 示例:定位输入框 ==> .s_ipt
  • 标签tag
    • 语法:标签名
    • 示例:input

根据其他属性定位

  • 语法:[属性名=属性值]
  • 示例
    1. [name=wd] 或 [name="wd"]        ==> 属性值的引号(""),可写可不写;但是在XPath中,属性值必须带引号
    2. [maxlength="100"]
    3. [id="kw"]           ==> 如果记不清CSS中 id 或 class 的写法,也可以使用该方法
    4. [name*=d]   ==> name属性值包含 d 的元素
    5. [name^=w]  ==> name属性值以 w 开头的元素
    6. [name$=d]        ==> name属性值以 d 结尾的元素

根据标签和元素属性组合定位

  • input#kw              标签名+id
  • input.s_ipt                 标签名+class
  • input[type="text"]      标签名+属性
  • input[name$=d][type="text"]        标签名为 input 中 name 属性值以 d 结尾,且 type 属性值为 text 的元素

CSS中的层级关系

  • 表示直接子元素:>

    • form>span>input#kw

  • 表示非直接子元素:空格( )

    • form input#kw

根据索引定位

  • .soutu-btn+input         ==> 选择class属性为soutu-btn元素后面紧挨着的 input 元素

  • [name=issp]~input         ==> 选择class属性为soutu-btn元素后面所有的 input 元素

  • input:nth-child(2)        ==> 选择属于 input 父元素的第2个子元素的每个 input 元素

  • input:nth-of-type(1)    ==> 选择属于 input 父元素的 input 子元素中第1个 input 元素

CSS 和 XPath 的区别

  • CSS

    1. 定位速度快
    2. 抗变性强
    3. 语法简洁
  • XPath
    1. 定位语法丰富
    2. 定位速度相对较慢
    3. 抗变性弱

原文地址:https://www.cnblogs.com/wilson-5133/p/10912979.html

时间: 2024-11-03 21:27:46

Selenium定位—CSS的相关文章

selenium定位css时报org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"xpath","selector":"

推测原因如下,请进行排查:原因1:xpath指定位置处还未展现出来,自动化已经进行点击,从而找不到该元素,解决办法就是加入等待时间,thread.sleep(3000);以上为3秒.原因2:xpath指定位置受前后的影响,比如需要先点击一下其他内容,才能展现,所以需要处理.建议:xpath定位建议使用相对路径定位,你使用的绝对路径定位.

python+selenium 定位元素

一.安装python1.配置环境变量c:\python27:C:\Python27\Scripts2.验证pyton是否可用,在cmd里面输入python没报错就行 二.安装selenium库4.安装selenium:在cmd里面,输入:pip install selenium 三.对应于webdriver中的定位方法分别是: driver.find_element_by_name()--最常用,简单 driver.find_element_by_id()--最常用,简单 driver.find

为什么selenium定位不到元素

在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况,一般可以从以下几个方面着手解决: 1.Frame/Iframe原因定位不到元素: 这个是最常见的原因,首先要理解下frame的实质,frame中实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,因此需要先定位到相应的frame,对那个页面里的元素进行定位. 2.Xpath描述错误原因: 这种情况有可能是: 1.xpath语法规则书写错误,这个木有办法,补下xpath的语法,多写写,练练就

Selenium定位不到指定元素原因之iframe(unable to locate element)

浏览过程中,图片中的内容可能太小,无法看清,可以>右键>在新标签中打开 Outline 项目原因,需要用selenium实现模拟登陆.模拟上传文件,自然就需要模拟点击[上传]按钮: 模拟点击之前需要通过selenium提供的“方法”去定位到要点击的元素: 模拟登陆过程中,全程都可以定位到需要点击的元素,但登陆后需要定位点击[上传]按钮时问题来了: 元素明明在那放着,就是定位不到,这个问题困扰了一下午还没解决,最终走到了iframe这个一步,才得以解决. 什么是iframe 解决问题之前很有必要

selenium之元素定位-css

CSS定位方式和XPATH定位方式基本相同,只是CSS定位表达式有其自己的格式.CSS定位方式拥有比XPATH定位速度快,且比XPATH稳定的特性.下面详细介绍CSS定位方式的使用方法 被测网页的HTML代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <style type="text/css"> input.spread { Font-SIZ

selenium之css定位

实在记不住,烂笔头就记一下吧. 一. 单一属性定位 1:type selector driver.find_element_by_css_selector('input') 2:id 定位 driver.find_element_by_css_selector('#kw') 3:class 定位 driver.find_element_by_css_selector('.s_ipt') 4:其他属性定位 driver.find_element_by_css_selector('[name='wd

selenium之CSS定位汇总

以百度首页为例: 定位输入框 一:单一属性定位 1:type selector driver.find_element_by_css_selector('input') 2:id 定位 driver.find_element_by_css_selector('#kw') 3:class 定位 driver.find_element_by_css_selector('.s_ipt') 4:其他属性定位 driver.find_element_by_css_selector('[name='wd']

【selenium学习笔记一】python + selenium定位页面元素的办法。

1.什么是Selenium,为什么web测试,大家都用它? Selenium设计初衷就是为web项目的验收测试再开发.内核使用的是javaScript语言编写,几乎支持所以能运行javaScript的浏览器,支持windows\linux\macos等各种平台. Selenium 脚本是用多种受支持的编程语言中的一种编写的 —— 目前可用的有 Java.Ruby 和 Python 驱动程序.这些脚本在浏览器之外的一个单独的进程中运行.驱动程序的任务是执行测试脚本,并通过与运行在浏览器中的 bro

Selenium定位HTML元素(Python)

本篇不是介绍通过各种方法(id, name, tag_name, css, xpath等)定位HTML各元素的普及性文章,网络上各种文档和博客介绍得均比较全面.这里只是将自己实践中,遇到的个别问题及解决方案进行记录. 在此推荐Selenium官方文档(Python版):http://selenium.googlecode.com/svn/trunk/docs/api/py/index.html 可以搜索关键字,得到函数用法和源码. 下面记录定位HTML元素方面遇到的问题和解决方法(持续更新).