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中的数据存储到系统本地的简单方法
Apr 11 Python
Django中redis的使用方法(包括安装、配置、启动)
Feb 21 Python
Django使用Mysql数据库已经存在的数据表方法
May 27 Python
python中不能连接超时的问题及解决方法
Jun 10 Python
python3 实现验证码图片切割的方法
Dec 07 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
Feb 15 Python
Python 二叉树的层序建立与三种遍历实现详解
Jul 29 Python
python监控nginx端口和进程状态
Sep 06 Python
Python字典中的值为列表或字典的构造实例
Dec 16 Python
Python绘制全球疫情变化地图的实例代码
Apr 20 Python
什么是python的必选参数
Jun 21 Python
聊聊pytorch测试的时候为何要加上model.eval()
May 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
关于php循环跳出的问题
2013/07/01 PHP
PHP利用str_replace防注入的方法
2013/11/10 PHP
整理8个很棒的 jQuery 倒计时插件和教程
2011/12/12 Javascript
js中通过split函数分割字符串成数组小例子
2013/09/21 Javascript
js去字符串前后空格的实现方法
2016/02/26 Javascript
学JavaScript七大注意事项【必看】
2016/05/04 Javascript
JS平滑无缝滚动效果的实现代码
2016/05/06 Javascript
移动端js图片查看器
2016/11/17 Javascript
微信小程序 picker-view 组件详解及简单实例
2017/01/10 Javascript
JS简单实现获取元素的封装操作示例
2017/04/07 Javascript
jQuery列表检索功能实现代码
2017/07/17 jQuery
Angular.js中window.onload(),$(document).ready()的写法浅析
2017/09/28 Javascript
详解用webpack的CommonsChunkPlugin提取公共代码的3种方式
2017/11/09 Javascript
Vuex提升学习篇
2018/01/11 Javascript
微信web端后退强制刷新功能的实现代码
2018/03/04 Javascript
Vue组件间通信 Vuex的用法解析
2019/08/05 Javascript
Javascript原生ajax请求代码实例
2020/02/20 Javascript
Vue事件处理原理及过程详解
2020/03/11 Javascript
微信小程序连续签到7天积分获得功能的示例代码
2020/08/20 Javascript
小程序自定义圆形进度条
2020/11/17 Javascript
python basemap 画出经纬度并标定的实例
2019/07/09 Python
详解如何减少python内存的消耗
2019/08/09 Python
python @classmethod 的使用场合详解
2019/08/23 Python
浅析Python 简单工厂模式和工厂方法模式的优缺点
2020/07/13 Python
使用CSS3来实现滚动视差效果的教程
2015/08/24 HTML / CSS
微信html5页面调用第三方位置导航的示例
2018/03/14 HTML / CSS
时尚、社区、科技:SEVENSTORE
2019/04/26 全球购物
什么是ARP(Address Resolution Protocol)地址解析协议
2013/10/31 面试题
村捐赠仪式答谢词
2014/01/21 职场文书
银行见习期自我鉴定
2014/01/29 职场文书
企业标语大全
2014/07/01 职场文书
药店营业员岗位职责
2015/04/14 职场文书
解除劳动合同通知书范本
2015/04/16 职场文书
2015入党个人自传范文
2015/06/26 职场文书
学术研讨会主持词
2015/07/04 职场文书
FFmpeg视频处理入门教程(新手必看)
2022/01/22 杂记