Python+Selenium

一 python+selenium 环境搭建

需安装工具:
python 环境搭建 (勾选add to path 省去配置环境变量)
Chrome 浏览器 webdriver驱动 selenium自动化库

安装包:
chrome:官网下载
selenium 安装:pip install selenium
webdriver:https://chromedriver.storage.googleapis.com/index.html
注意:webdriver 与 chrome 浏览器版本需对应

安装过程问题

  1. 问题描述:webdriver驱动启动路径错误
    webdriver驱动路径错误在这里插入图片描述
  2. 问题描述:webdriver方法大小写

在这里插入图片描述
webderiver.Chrome应该大写

在这里插入图片描述

选择元素的基本方法

根据元素的id属性选择元素 返回的值为该元素的WebElement对象
调用方法:find_element_by_id
在这里插入图片描述
在这里插入图片描述

根据class属性,tag名选择元素

在这里插入图片描述
在这里插入图片描述

根据class属性

所有植物都有class属性 plant
所有动物都有class属性 animal
如果要选择所有的动物,可以使用方法 find_elements_by_class_name
在这里插入图片描述
注:返回元素为列表,elements去掉s表示查找第一个
在这里插入图片描述
find_element 与 find_elements的区别
find_element 选择的是符合要求的第一个元素,如果没有符合条件的元素,抛异常
elements查找的是符合要求的所有元素,如果没有符合条件的元素,返回空列表

根据tag查找元素

在这里插入图片描述
不仅 WebDriver对象有 选择元素 的方法, WebElement对象 也有选择元素的方法。
WebElement对象 也可以调用 find_elements_by_xxx, find_element_by_xxx 之类的方法
WebDriver 对象 选择元素的范围是 整个 web页面, 而
WebElement 对象 选择元素的范围是 该元素的内部。

先定位到元素内部,再查询该元素内部的标签名 ----查询某个属性下特定的标签
标签名重名时,可以根据先定位到class 再定位到具体标签
示例:
在这里插入图片描述

CSS表达式 css selector

代码示例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通过css定位单个元素的方法,多个 elements
find_element_by_css_selector(元素)

属性:
id 是#号
class .表示值
标签
dev tag

选择 子元素 和 后代元素

css 语法:ps. 后代元素与直接子元素可以混用
如果元素2是元素1的直接子元素,css选择子元素语法:
元素1 > 元素2
注意:最终选择的是元素2,且元素2是元素1的直接子元素

也支持更多层的选择
比如 元素1 > 元素2 > 元素3 > 元素4

如果元素2是元素1的后代,css选择后代元素语法:
元素1 元素2 ----中间为空格
注意:最终选择的是元素2,且元素2是元素1的后代元素

也支持更多层的选择 —最终选择的是元素4
比如 元素1 元素2 元素3 元素4

例1:查找id为container下的 直接子元素是div
#container > div
错误示范:#layer1 > span
span 为layer1的孙子节点 应该为 #layer1 span
例2: 查找plant下的span元素
.plant span
在这里插入图片描述

#############################分割线#############################

href元素定位方法 —属性定位元素方法

单双引号问题:外面双引号,里面单引号,外面单引号,里边双引号
find_element_by_css_selector(’[href = ‘链接地址’]’)
网页中仅存在一个href元素时
find_element_by_css_selector(’[href = ‘链接地址’]’)
网页中仅存在一个href元素时
find_element_by_css_selector(’[href]’)
在这里插入图片描述

#############################分割线#############################

属性标签混合使用, 子元素,后代元素混合使用

属性:
id 是#号
class .表示值
标签
dev tag
混用:
.plant[name=‘duanxuemin’] 表示class为plant,name为duanxuemin
总结:根据属性值定位元素
[属性名=‘属性值’]
属性仅存在一个时
[属性名]
无层级关系 表示且的关系:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查找出id时searchtext,type为text

操控元素的基本方法

点击元素
再元素中输入字符串,通常是对输入框这样的元素
获取元素所包含的信息,比如元素的内容,元素的属性

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值