selenium是python的非标准库,使用时需要下载安装

安装命令  pip install selenium

selenium是python的自动化测试模块,可以模拟浏览器的行为

所以在使用之前还要安装浏览器驱动,不同的版本对应不同的驱动文件,这里就不一一赘述了,网上相关的介绍有很多(主要是作者懒)

下载后将驱动文件放到添加过环境变量的路径,以便系统在使用时找到它,这里我把它放在了python的安装目录里

前戏部分就做完了,可以开始了

from selenium import webdriver
import time
# 创建Chrome对象
driver = webdriver.Chrome()  
# 打开浏览器预设网址
driver.get('https://www.baidu.com')  
# 通过id获取搜索框
input_ele = driver.find_element_by_css_selector('#kw')  
# 模拟键盘操作 输入框输入内容
input_ele.send_keys("虞书欣")  
# 模拟鼠标点击操作
driver.find_element_by_css_selector('#su').click()  
# 延迟2秒,等待页面刷新完成
time.sleep(2) 

a_ele = driver.find_element_by_css_selector('#content_left div.c-container a')  # 解析页面元素 定位到目标链接

'''
中间遇到一个问题
使用id = 1定位时定位不到该节点,
a_ele = driver.find_element_by_css_selector('#content_left div#1 a')
报错:
  selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: An invalid or illegal selector was specified
开始想的时页面可能这个元素还没刷新完成,后来我页面延迟5秒后还是报错
然后我使用class定位,成功定位到该节点,然后获取该节点的id,输出为:1
还是没搞懂为什么不能使用id定位到该节点,不知哪位大捞可以帮忙解读解读 原因是id为数字不符合python的命名规则......
'''
结合实例总结一下:

driver.find_element_by_css_selector('#content')  查找id为content的节点
driver.find_element_by_css_selector('.content')  查找class为content的节点
driver.find_element_by_css_selector('div#conten>a')  查找id为content的div的所有子节点为a标签的节点
driver.find_element_by_css_selector('div#conten a')  查找id为content的div的所有子孙节点为a标签的节点
driver.find_element_by_css_selector('#conten p:nth-child(2)')  查找id为content的节点中的其父元素的第二个子元素是p标签的节点,并不是指第二个p标签节点
driver.find_element_by_css_selector('#conten>p:nth-of-type(2)')  查找id为content的节点的第二个p标签节点
driver.find_element_by_css_selector('.content[name=value]') 查找class为content且name属性为value的所有节点

find_element_by_css_selector 返回匹配到的第一个节点
find_elements_by_css_selector 返回匹配到的所有节点,类型是list

												

python selenium模块 css定位的更多相关文章

  1. python selenium之CSS定位

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

  2. python selenium模块 xpath定位

    ''' 附w3xpath语法地址 https://www.w3school.com.cn/xpath/xpath_syntax.asp 总结: 返回匹配到所有符合条件的第一个节点,对象是 <cl ...

  3. python+selenium 元素被定位到而且click()也提示执行成功,但是页面就是没有变化和跳转。

    python+selenium 元素被定位到而且click()也提示执行成功,但是页面就是没有变化和跳转. 如果多次定位和click(),有时候会跳转. 我遇到很多次就是很郁闷,有人说,操作太快的,页 ...

  4. python selenium模块调用浏览器的时候出错

    python selenium模块使用出错,这个怎么改 因为不同版本更新不同步问题,浏览器都要另外下一个驱动.

  5. 6 Python+Selenium的元素定位方法(CSS)

    [环境] python3.6+selenium3.0.2+Firefox50.0+win7 [定位方法] 1.方法:find_element_by_css_selector('xx') CSS的语法比 ...

  6. Python selenium根据class定位页面元素

    在日常的网页源码中,我们基于元素的id去定位是最万无一失的,id在单个页面中是不会重复的.但是实际工作中,很多前端开发人员并未给每个元素都编写id属性.通常一段html代码如下: <div cl ...

  7. selenium之css定位小结

    前言 大部分人在使用selenium定位元素时,用的是xpath定位,因为xpath基本能解决定位的需求.css定位往往被忽略掉了,其实css定位也有它的价值,css定位更快,语法更简洁.这一篇css ...

  8. 自动化测试-6.selenium的css定位

    前言 大部分人在使用selenium定位元素时,用的是xpath定位,因为xpath基本能解决定位的需求.css定位往往被忽略掉了,其实css定位也有它的价值,css定位更快,语法更简洁.这一篇css ...

  9. python+selenium二:定位方式

    # 八种单数定位方式:elementfrom selenium import webdriverimport time driver = webdriver.Firefox()time.sleep(2 ...

随机推荐

  1. Python第六章-函数01-函数的概念和使用

    函数 为了便于程序的维护和更好的实现模块化,好的程序都会分解为很多函数. 可以这么说,对于任何的编程语言,函数都是一个非常重要的概念. python 不仅简化了函数的定义过程,而且还大量借鉴了其他函数 ...

  2. Python第五章-内置数据结构05-集合

    Python内置数据结构 五.集合(set) python 还提供了另外一种数据类型:set. set用于包含一组无序的不重复对象.所以set中的元素有点像dict的key.这是set与 list的最 ...

  3. 关于《自动化测试实战宝典:Robot Framework + Python从小工到专家》

    受新冠疫情影响,笔者被“困”在湖北老家七十余天,于4月1号(愚人节)这天,终于返回到广州.当前国内疫情基本已趋于平稳,但全球疫情整体势态仍在持续疯涨,累计确诊病例已近80万人.祈祷这场全球性灾难能尽早 ...

  4. [HDU2072]单词数<字符串>

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=2072 Problem Description lily的好朋友xiaoou333最近很空,他想了一件没有什 ...

  5. 用c#每日更换“必应背景图片”为“桌面壁纸”

    必应每天都会更换背景图片,都非常漂亮,有的时候还十分惊艳,同时还会根据每个地区的特色不同应用不同的图片. 下面用c#抓取必应每天的背景图片,并实现桌面壁纸的每天自动切换 实现思路 1.通过获取&quo ...

  6. Java 程序该怎么优化?(工具篇)

    程序员:为什么程序总是那么慢?时间都花到哪里去了? 面试官:若你写的 Java 程序,出现了性能问题,该怎么去排查呢? 工欲善其事必先利其器,为你呈上一箩筐性能优化工具,必有一款满足你,废话不多说,直 ...

  7. Metrics:如何让线上应用更加透明?

    1. 上期我们结合<SRE Google 运维解密>,对监控系统进行了一次脉络梳理,知道一旦离开了监控系统,我们就没法辨别一个服务是不是在正常提供服务,就如同线上的服务在随风裸奔. 文章分 ...

  8. 1014 Waiting in Line (30 分)

    Suppose a bank has N windows open for service. There is a yellow line in front of the windows which ...

  9. PTA数据结构与算法题目集(中文) 7-43字符串关键字的散列映射 (25 分)

    PTA数据结构与算法题目集(中文)  7-43字符串关键字的散列映射 (25 分) 7-43 字符串关键字的散列映射 (25 分)   给定一系列由大写英文字母组成的字符串关键字和素数P,用移位法定义 ...

  10. Docker 常用命令(.NET Core示例)

    Docker安装 CentOS Docker 安装 安装 Docker Desktop for Mac.Docker Desktop for Windows 设置docker仓库镜像加速器 迁移Doc ...