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 while、for、生成器、列表推导等语句的执行效率测试
Jun 03 Python
Linux下python3.6.1环境配置教程
Sep 26 Python
Python3多目标赋值及共享引用注意事项
May 27 Python
python字符串中匹配数字的正则表达式
Jul 03 Python
Python Pandas 箱线图的实现
Jul 23 Python
pytorch多进程加速及代码优化方法
Aug 19 Python
python3.8下载及安装步骤详解
Jan 15 Python
Django 5种类型Session使用方法解析
Apr 29 Python
使用SQLAlchemy操作数据库表过程解析
Jun 10 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
Sep 03 Python
用python对oracle进行简单性能测试
Dec 05 Python
Python+tkinter实现高清图片保存
Mar 13 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
php的大小写敏感问题整理
2011/12/29 PHP
PHP文章采集URL补全函数(FormatUrl)
2012/08/02 PHP
PHP从FLV文件获取视频预览图的方法
2015/03/12 PHP
AJAX的使用方法详解
2017/04/29 PHP
如何减少浏览器的reflow和repaint
2015/02/26 Javascript
浅谈jquery页面初始化的4种方式
2016/11/27 Javascript
JS使用正则截取两个字符串之间的字符串实现方法详解
2017/01/06 Javascript
微信小程序 检查接口状态实例详解
2017/06/23 Javascript
详解vue-cli + webpack 多页面实例配置优化方法
2017/07/13 Javascript
微信小程序实现图片放大预览功能
2020/10/22 Javascript
vue实现带复选框的树形菜单
2019/05/27 Javascript
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
2019/07/10 jQuery
使用vue-cli3+typescript的项目模板创建工程的教程
2020/02/28 Javascript
[18:32]DOTA2 HEROS教学视频教你分分钟做大人-谜团
2014/06/12 DOTA
Python中input与raw_input 之间的比较
2017/08/20 Python
Python面向对象程序设计之继承与多继承用法分析
2018/07/13 Python
详解多线程Django程序耗尽数据库连接的问题
2018/10/08 Python
用python爬取租房网站信息的代码
2018/12/14 Python
python实现网页自动签到功能
2019/01/21 Python
对Python的多进程锁的使用方法详解
2019/02/18 Python
Python Django的安装配置教程图文详解
2019/07/17 Python
pycharm修改file type方式
2019/11/19 Python
pip安装tensorflow的坑的解决
2020/04/19 Python
Python读取ini配置文件传参的简单示例
2021/01/05 Python
Sofft鞋官网:世界知名鞋类品牌
2017/03/28 全球购物
美国彩妆品牌:Coastal Scents
2017/04/01 全球购物
Waterford美国官网:爱尔兰水晶制品品牌
2017/04/26 全球购物
海蓝之谜(LA MER)澳大利亚官方商城:全球高端奢华护肤品牌
2017/10/27 全球购物
阿联酋网上花店:Ferns N Petals
2018/02/14 全球购物
汽车维修与检测专业应届生求职信
2013/11/12 职场文书
建筑公司文秘岗位职责
2013/11/29 职场文书
乡镇庆八一活动方案
2014/02/02 职场文书
电子商务系毕业生自荐信
2014/05/29 职场文书
个人剖析材料范文
2014/09/30 职场文书
四群教育工作总结
2015/08/10 职场文书
简历自我评价:教师师德表现自我评价
2019/04/24 职场文书