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的Flask框架标配模板引擎Jinja2的使用教程
Jul 12 Python
python实现用户管理系统
Jan 10 Python
django DRF图片路径问题的解决方法
Sep 10 Python
Python实现平行坐标图的两种方法小结
Jul 04 Python
Python 实现数据结构-堆栈和队列的操作方法
Jul 17 Python
40个你可能不知道的Python技巧附代码
Jan 29 Python
python判断两个序列的成员是否一样的实例代码
Mar 01 Python
基于FME使用Python过程图解
May 13 Python
详解用Python爬虫获取百度企业信用中企业基本信息
Jul 02 Python
Python3.8安装Pygame教程步骤详解
Aug 14 Python
Python从MySQL数据库中面抽取试题,生成试卷
Jan 14 Python
python高温预警数据获取实例
Jul 23 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
jq的get传参数在utf-8中乱码问题的解决php版
2008/07/23 PHP
php删除指定目录的方法
2015/04/03 PHP
PHP+Redis开发的书签案例实战详解
2019/07/09 PHP
phpwind放自动注册方法
2006/12/02 Javascript
javascript面向对象之Javascript 继承
2010/05/04 Javascript
jquery ajax post提交数据乱码
2013/11/05 Javascript
javascript简单实现滑动菜单效果的方法
2015/07/27 Javascript
Webpack 实现 AngularJS 的延迟加载
2016/03/02 Javascript
AngularJS指令详解及示例代码
2016/08/16 Javascript
Laravel中常见的错误与解决方法小结
2016/08/30 Javascript
JS中如何实现Laravel的route函数详解
2017/02/12 Javascript
bootstrap table表格插件使用详解
2017/05/08 Javascript
JS 学习总结之正则表达式的懒惰性和贪婪性
2017/07/03 Javascript
Angular17之Angular自定义指令详解
2018/01/21 Javascript
详解vue-cli3多页应用改造
2019/06/04 Javascript
从零搭一个自用的前端脚手架的方法步骤
2019/09/23 Javascript
浅谈vue单页面中有多个echarts图表时的公用代码写法
2020/07/19 Javascript
javascript实现支付宝滑块验证码效果
2020/07/24 Javascript
[01:24:51]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第二场
2014/05/26 DOTA
python中反射用法实例
2015/03/27 Python
深入解析Python中的list列表及其切片和迭代操作
2016/03/13 Python
Python类属性的延迟计算
2016/10/22 Python
python编写微信远程控制电脑的程序
2018/01/05 Python
Python if语句知识点用法总结
2018/06/10 Python
python 筛选数据集中列中value长度大于20的数据集方法
2018/06/14 Python
对python使用telnet实现弱密码登录的方法详解
2019/01/26 Python
Python中常用的os操作汇总
2020/11/05 Python
基于CSS3的CSS 多栏(Multi-column)实现瀑布流源码分享
2014/06/11 HTML / CSS
html5简单示例_动力节点Java学院整理
2017/07/07 HTML / CSS
越南综合购物网站:Lazada越南
2019/06/10 全球购物
香港连卡佛百货官网:Lane Crawford
2019/09/04 全球购物
英国鞋网:Rubber Sole
2020/03/03 全球购物
计算机应用毕业生自荐信
2013/10/23 职场文书
小学数学课题方案
2014/06/15 职场文书
公文格式,规则明细(新手收藏)
2019/07/23 职场文书
微信小程序基础教程之echart的使用
2021/06/01 Javascript