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使用cookie库操保存cookie详解
Mar 03 Python
Python实现简单截取中文字符串的方法
Jun 15 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
Apr 14 Python
python pandas 组内排序、单组排序、标号的实例
Apr 12 Python
Python 3.6 读取并操作文件内容的实例
Apr 23 Python
python递归函数绘制分形树的方法
Jun 22 Python
微信公众号token验证失败解决方案
Jul 22 Python
python 提取文件指定列的方法示例
Aug 07 Python
Python操作注册表详细步骤介绍
Feb 05 Python
Python随机数函数代码实例解析
Feb 09 Python
Python内置方法和属性应用:反射和单例(推荐)
Jun 19 Python
Python中文纠错的简单实现
Jul 07 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实现的交通银行网银在线支付接口ECSHOP插件和使用例子
2014/05/10 PHP
PHP中把错误日志保存在系统日志中(Windows系统)
2015/06/23 PHP
curl和libcurl的区别简介
2015/07/01 PHP
php获取汉字拼音首字母的方法
2015/10/21 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
另类调用flash无须激活的方法
2006/12/27 Javascript
jQuery学习笔记之jQuery的事件
2010/12/22 Javascript
jquery text()方法取标签中的文本
2014/07/25 Javascript
jQuery插件Tooltipster实现漂亮的工具提示
2015/04/12 Javascript
基于jQuery实现自动轮播旋转木马特效
2015/11/02 Javascript
jQuery插件formValidator实现表单验证
2016/05/23 Javascript
D3.js实现柱状图的方法详解
2016/09/21 Javascript
AngularJS入门教程之过滤器用法示例
2016/11/02 Javascript
javascript基础进阶_深入剖析执行环境及作用域链
2017/09/05 Javascript
ES6中新增的Object.assign()方法详解
2017/09/22 Javascript
用React实现一个完整的TodoList的示例代码
2017/10/30 Javascript
在element-ui的select下拉框加上滚动加载
2019/04/18 Javascript
你所不知道的Python奇技淫巧13招【实用】
2016/12/14 Python
将python代码和注释分离的方法
2018/04/21 Python
对Python 2.7 pandas 中的read_excel详解
2018/05/04 Python
利用Python如何实现数据驱动的接口自动化测试
2018/05/11 Python
详解python中Numpy的属性与创建矩阵
2018/09/10 Python
python使用turtle库绘制奥运五环
2020/02/24 Python
Python反爬虫伪装浏览器进行爬虫
2020/02/28 Python
Python内置函数property()如何使用
2020/09/01 Python
N.Peal官网:来自伦敦的高档羊绒品牌
2018/10/29 全球购物
英国100%防污和防水的靴子:Muck Boot Company
2020/09/08 全球购物
如何现实servlet的单线程模式
2014/08/05 面试题
大学生自荐书范文
2013/12/10 职场文书
十周年庆典策划方案
2014/06/03 职场文书
医学生求职自荐书
2014/06/12 职场文书
甘南现象心得体会
2014/09/11 职场文书
2014年实验室工作总结
2014/12/03 职场文书
为什么中国式养孩子很累?
2019/08/07 职场文书
创业计划书之外语培训班
2019/11/02 职场文书
MySQL 8.0 驱动与阿里druid版本兼容问题解决
2021/07/01 MySQL