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编程之属性和方法实例详解
May 19 Python
Python列表删除的三种方法代码分享
Oct 31 Python
Pycharm 设置自定义背景颜色的图文教程
May 23 Python
Python3.7实现中控考勤机自动连接
Aug 28 Python
用Python实现大文本文件切割的方法
Jan 12 Python
Golang GBK转UTF-8的例子
Aug 26 Python
利用pyshp包给shapefile文件添加字段的实例
Dec 06 Python
python实现简单俄罗斯方块
Mar 13 Python
解决pycharm安装第三方库失败的问题
May 09 Python
Python使用for生成列表实现过程解析
Sep 22 Python
Python datetime模块的使用示例
Feb 02 Python
Python中字符串对象语法分享
Feb 24 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 和 XML: 使用expat函数(一)
2006/10/09 PHP
PHP的单引号和双引号 字符串效率
2009/05/27 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
2016/09/11 PHP
PHP排序算法之归并排序(Merging Sort)实例详解
2018/04/21 PHP
JavaScript 变量作用域分析
2011/07/04 Javascript
JS组件Bootstrap Table使用方法详解
2016/02/02 Javascript
JS获取及验证开始结束日期的方法
2016/08/20 Javascript
js仿微信语音播放实现思路
2016/12/12 Javascript
AngularJS过滤器filter用法总结
2016/12/13 Javascript
微信小程序实战之自定义模态弹窗(8)
2017/04/18 Javascript
详解Vuejs2.0 如何利用proxyTable实现跨域请求
2017/08/03 Javascript
Vue的elementUI实现自定义主题方法
2018/02/23 Javascript
elementUI Tree 树形控件的官方使用文档
2019/04/25 Javascript
vue 开发之路由配置方法详解
2019/12/02 Javascript
简单了解JavaScript弹窗实现代码
2020/05/07 Javascript
[59:32]Liquid vs Fnatic 2019国际邀请赛淘汰赛败者组BO1 8.20.mp4
2020/07/19 DOTA
Python break语句详解
2014/03/11 Python
python简单猜数游戏实例
2015/07/09 Python
windows系统下Python环境的搭建(Aptana Studio)
2017/03/06 Python
python 拷贝特定后缀名文件,并保留原始目录结构的实例
2018/04/27 Python
Python3实现的判断回文链表算法示例
2019/03/08 Python
对Django中内置的User模型实例详解
2019/08/16 Python
pytorch获取vgg16-feature层输出的例子
2019/08/20 Python
详解Python 字符串相似性的几种度量方法
2019/08/29 Python
使用pandas 将DataFrame转化成dict
2019/12/10 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
2020/03/10 Python
Python中的wordcloud库安装问题及解决方法
2020/05/27 Python
iRobot官网:改变生活的家用机器人品牌
2016/09/20 全球购物
丝芙兰意大利官方网站:Sephora.it
2019/12/13 全球购物
介绍一下Java中的Class类
2015/04/10 面试题
七一表彰活动方案
2014/01/18 职场文书
有关环保的标语
2014/06/13 职场文书
技术员岗位职责
2015/02/04 职场文书
小学生读书笔记范文
2015/06/30 职场文书
新娘父亲婚礼致辞
2015/07/27 职场文书
大学毕业典礼致辞
2015/07/29 职场文书