以百度为例

一、通过id、class定位

1、#id:python:driver.find_element_by_css_selector('input#kw')

2、.class:python:driver.find_element_by_css_selector('input.s_ipt')

注:class='bg s_ipt_wr quickdelete-wrap',类似这种叫复合class,由多个类选择器组成,定位的写法则是:.bg.s_ipt_wr.quickdelete-wrap,所有空格用.(点)代替

二、其他属性

使用其他属性定位,如name,type。。。

python:driver.find_element_by_css_selector('input[name="wd"]')

如果属性没有值,也可以使用

python:driver.find_element_by_css_selector('input[name]')

三、模糊匹配,定位百度输入框

匹配属性值由多个空格隔开,匹配其中一个值:input[class~='bg']  # 百度搜索按钮:class='bg s_btn'
匹配属性值为 'bg' 开头的方法:python:driver.find_element_by_css_selector("input[class^='bg']")
匹配属性值 ‘ipt’ 结尾的方法:python:driver.find_element_by_css_selector("input[class$='ipt']")
匹配属性值中间有 '_i' 的元素:python:driver.find_element_by_css_selector("input[class*='_i']")

四、组合属性定位

1、input#id.class[name='wd']
2、多个属性组合input[name][autocomplete]

五、层级定位

1、子元素定位(以 > 分隔)

form>span#id>input[name]

2、后代元素定位(以空格分隔)

span input :定位span下所有的input标签,包括span下的所有层次的input,注意不是span下一层的input,是所有

3、元素层级css还支持三个方法,分别是first-child、last-child、nth-child(n)
(1)first-child:第一个后代元素
(2)last-child:最后一个后代元素
(3)nth-child(N):指定第N个后代元素
下面举例:
(1)input:first-child   定位所有层次第一个为input的元素,注意是第一个元素为input标签的
(2)span input:first-child    定位span标签下,第一个为input标签的元素
(3)span :last-child   定位span标签下,最后一个元素
(4)span input:last-child    定位span标签下,最后一个为input标签的元素
(5)span :nth-child(2)  定位span标签下,第二个元素
(6)form.fm>:nth-child(2)  定位form标签,class等于fm下的第二个元素

python slenium 中CSS定位的更多相关文章

  1. python selenium之CSS定位

    ccs的优点:css相对xpath语法比xpath简洁,定位速度比xpath快 css的缺点:css不支持用逻辑运算符来定位,而xpath支持.css定位语法形式多样,相对xpath比较难记. css ...

  2. selenium+python自动化之CSS定位

    一.css:属性定位 1.css可以通过元素的id.class.标签这三个常规属性直接定位到 2.如下是百度输入框的的html代码: <input id="kw" class ...

  3. python selenium模块 css定位

    selenium是python的非标准库,使用时需要下载安装 安装命令  pip install selenium selenium是python的自动化测试模块,可以模拟浏览器的行为 所以在使用之前 ...

  4. selenium中CSS选择器定位

    selenium元素定位,CSS选择器定位效率会高很多. CSS选择器用于选择你想要的元素的样式的模式.表格摘自“菜鸟教程”,具体用法可去查阅 选择器 示例 示例说明 CSS .class .intr ...

  5. 深入理解CSS定位中的偏移

    × 目录 [1]定位 [2]包含块 [3]偏移属性[4]绝对定位[5]格式化 [6]auto 前面的话 CSS有三种基本的定位机制:普通流.浮动和绝对定位.利用定位,可以准确地定义元素框相对于其正常位 ...

  6. Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析

    加速IE浏览器自动化执行效率:Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析 1.技术背景       在Web应用中,用户通过键盘在输入框中输入值和鼠标点击按钮,链 ...

  7. 对css中的定位属性postion刨根解牛

    定位的基本思想很简单: 它允许你定义元素框相对于其正常位置应该出现的位置(relative),或者相对于父元素(absolute).另一个元素甚至浏览器窗口本身的位置(fixed).显然,这个功能非常 ...

  8. 【转】深入理解CSS定位中的偏移

    前面的话 CSS有三种基本的定位机制:普通流.浮动和绝对定位.利用定位,可以准确地定义元素框相对于其正常位置应该出现的位置,或者相对于父元素.另一个元素甚至浏览器窗口本身的位置.但元素究竟如何定位,定 ...

  9. CSS中的定位与浮动

    CSS中的定位与浮动 本文主要讲述CSS中的三种定位样式static.relative和absolute的区别以及浮动元素的特征. 定位样式 CSS中定位样式position的取值有三个,默认值:st ...

随机推荐

  1. POJ - 1830:开关问题 (开关问题-高斯消元-自由元)

    pro:有N个相同的开关,每个开关都与某些开关有着联系,每当你打开或者关闭某个开关的时候,其他的与此开关相关联的开关也会相应地发生变化,即这些相联系的开关的状态如果原来为开就变为关,如果为关就变为开. ...

  2. Vue 交互

  3. Fedora 系统屏幕亮度修改

    在某些笔记本电脑上,屏幕亮度卡在最大值,功能键或桌面设置似乎没有做任何事情. 有一件事要尝试通常可以解决这个问题.打开/ etc / default / grub 并找到以GRUB_CMDLINE_L ...

  4. 装了anaconda之后如何设置anaconda、python环境变量

    装了anaconda之后如何设置anaconda.python环境变量 1.装了anaconda之后如何设置anaconda环境变量 参考 https://www.cnblogs.com/avivi/ ...

  5. Vue基础之初识Vue

    Vue特点及优点 小巧,压缩后体积17KB: 渐进式,不需要一口吃成大胖子,一上来就用所有的东西,可以一步一步.有阶段的先吃成小胖子: 数据驱动,双向数据绑定,MVVM模式,详见下一段 指令,例如v- ...

  6. javascript的加减乘除结果会有误差,在两个浮点数相加的时候会比较明显。以下函数返回较为精确的计算结果

    加法函数(返回值:arg1加arg2的精确结果  ) function accAdd (arg1, arg2) { var r1, r2, m, c try { r1 = arg1.toString( ...

  7. MVC Model验证

    [Required(ErrorMessage = "证件号不能为空!")] [RegularExpression(@"(^\d{18}$)|(^\d{15}$)|(^\d ...

  8. 2018-2019-2 20165313 《网络对抗技术》Exp4 恶意代码分析

    一.实践目标 1.监控你自己系统的运行状态,看有没有可疑的程序在运行. 2.分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sysinternals,systrac ...

  9. ionic上拉加载组件 ion-infinite-scroll自动调用多次的问题

    参考文章地址:http://www.cnblogs.com/luleixia/p/6402418.html ionic 一个上拉刷新的组件 ion-infinite-scroll,如果页面未填充满页面 ...

  10. impdp如何杀掉job

    今天刚执行一个impdp操作发现,硬盘空间可能不够了,赶紧按了Ctrl+C,结果发现磁盘空间仍然在减少.问了一下部门oracle专家,Ctrl+C是无法停止impdp的job的.需要将job进行att ...