Python selenium的基本使用方法分析


Posted in Python onDecember 21, 2019

本文实例讲述了Python selenium的基本使用方法。分享给大家供大家参考,具体如下:

selenium是一个web自动化测试工具,selenium可以直接运行在浏览器上,可以接收指令,让浏览器自动加载页面,获取需要的数据。

selenium的基本使用

1.导包

from selenium import webdriver

2.创建driver对象

webdriver.PhantomJS()

3.请求数据

driver.get("http://www.baidu.com")

4.查看网页源码

driver.page_source

5.关闭无界面浏览器

driver.quit()

6.根据id定位元素

drivrt.find_element_by_id("kw")

7.操作点击事件

click()

8.给输入框赋值

send_keys()

selenium的定位操作

定位元素语法:

find_element_by_id(返回一个元素)
find_elements_by_xpath(返回一个包含元素的列表)
find_elements_by_link_text(根据连接文本获取元素列表)
find_elements_by_partial_link_text(根据链接包含的文本获取元素列表)
find_elements_by_tag_name(根据标签名获取元素列表)
find_elements_bu_class_name(根据类名获取元素列表)

注意

find_element和find_elements的区别:多了个s返回列表,没有s的返回匹配到的第一个。

获取数据

获取文本:element.text

获取属性值:element.get_attribute("href")

selenium的其他方法

selenium处理cookie

driver.get_cookies(),获取的是完整的cookie信息,不光有name、value,还有domain等其他信息。

# 把cookie转换为字典
cookies_dict = {cookie['name']: cookie['value'] for cookie in driver.get_cookies()}
# 删除一条cookie
driver.delete_cookie("CookieName")
# 删除所有cookie
driver.delete_all_cookies()

页面等待

time.sleep(10)

selenium执行js代码

driver.execute_script('js语句')

switch方法切换的操作

1.窗口切换

# 获取当前所有的窗口
current_windows = driver.window_handles
# 根据窗口索引进行切换
driver.switch_to.window(current_windows[1])

2.selenium默认访问不了frame中的内容,对应解决的方法是driver.switch_to.frame()

3.处理页面弹窗提示

driver.switch_to.alert()

页面前进和后退

driver.forward() # 前进
driver.back(() # 后退

selenium的优缺点

  • 优点:selenium能够执行页面上的js,对于js渲染的数据和模拟登陆处理起来较容易。
  • 缺点:selenium由于在获取页面过程会发送很多请求,所以效率非常低。

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python远程桌面协议RDPY安装使用介绍
Apr 15 Python
python Django模板的使用方法
Jan 14 Python
举例讲解如何在Python编程中进行迭代和遍历
Jan 19 Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
Apr 13 Python
Python实现的概率分布运算操作示例
Aug 14 Python
Python优先队列实现方法示例
Sep 21 Python
详解关于Django中ORM数据库迁移的配置
Oct 08 Python
selenium跳过webdriver检测并模拟登录淘宝
Jun 12 Python
Python中请不要再用re.compile了
Jun 30 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
Dec 10 Python
Python中使用subprocess库创建附加进程
May 11 Python
Python OpenCV超详细讲解调整大小与图像操作的实现
Apr 02 Python
Flask框架搭建虚拟环境的步骤分析
Dec 21 #Python
Django restframework 框架认证、权限、限流用法示例
Dec 21 #Python
python支持多线程的爬虫实例
Dec 21 #Python
Python 实现try重新执行
Dec 21 #Python
在python shell中运行python文件的实现
Dec 21 #Python
Python 脚本的三种执行方式小结
Dec 21 #Python
python带参数打包exe及调用方式
Dec 21 #Python
You might like
Yii2实现上下联动下拉框功能的方法
2016/08/10 PHP
ExtJS 工具栏 分页事件参数
2010/03/05 Javascript
Jquery ajax不能解析json对象,报Invalid JSON错误的原因和解决方法
2010/03/27 Javascript
Javascript表格翻页效果的具体实现
2013/10/05 Javascript
jQuery的显示和隐藏方法与css隐藏的样式对比
2013/10/18 Javascript
Bootstrap每天必学之简单入门
2015/11/19 Javascript
JS利用cookies设置每隔24小时弹出框
2017/04/20 Javascript
使用JS在浏览器中判断当前网络连接状态的几种方法
2017/05/05 Javascript
React Router V4使用指南(精讲)
2018/09/17 Javascript
Vue表单输入绑定的示例代码
2018/11/01 Javascript
Vue 中使用 typescript的方法详解
2020/02/17 Javascript
Openlayers实现图形绘制
2020/09/28 Javascript
vue通过接口直接下载java生成好的Excel表格案例
2020/10/26 Javascript
vue使用echarts图表自适应的几种解决方案
2020/12/04 Vue.js
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
2021/01/22 Vue.js
Python中List.count()方法的使用教程
2015/05/20 Python
python中range()与xrange()用法分析
2016/09/21 Python
Python实现遍历目录的方法【测试可用】
2017/03/22 Python
浅谈python中的__init__、__new__和__call__方法
2017/07/18 Python
13个最常用的Python深度学习库介绍
2017/10/28 Python
Python之ReportLab绘制条形码和二维码的实例
2018/01/15 Python
Python实现将doc转化pdf格式文档的方法
2018/01/19 Python
python3 发送任意文件邮件的实例
2018/01/23 Python
python 获取微信好友列表的方法(微信web)
2019/02/21 Python
Python计算一个点到所有点的欧式距离实现方法
2019/07/04 Python
python调用摄像头的示例代码
2020/09/28 Python
Python尾递归优化实现代码及原理详解
2020/10/09 Python
使用CSS3来代替JS实现交互
2017/08/10 HTML / CSS
深入探究HTML5的History API
2015/07/09 HTML / CSS
瑞典在互联网上最大的宠物商店:Animail
2020/10/31 全球购物
妇产科护士自我鉴定
2013/10/15 职场文书
大学毕业生通用自荐信范文
2013/10/31 职场文书
志愿者活动总结
2014/04/28 职场文书
四年级数学上册教学计划
2015/01/20 职场文书
慰问信格式规范
2015/03/23 职场文书
老公出轨后的保证书
2015/05/08 职场文书