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 相关文章推荐
Python3.x和Python2.x的区别介绍
Feb 12 Python
python使用range函数计算一组数和的方法
May 07 Python
python图片验证码生成代码
Jul 02 Python
Python实现基本线性数据结构
Aug 22 Python
python的文件操作方法汇总
Nov 10 Python
Python实现统计给定列表中指定数字出现次数的方法
Apr 11 Python
python使用selenium实现批量文件下载
Mar 11 Python
Python如何实现小程序 无限求和平均
Feb 18 Python
解析python 中/ 和 % 和 //(地板除)
Jun 28 Python
利用Python实现Json序列化库的方法步骤
Sep 09 Python
python - asyncio异步编程
Apr 06 Python
pandas中pd.groupby()的用法详解
Jun 16 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转换文本框内容为HTML格式的方法
2016/07/20 PHP
CSS心形加载的动画源码的实现
2021/03/09 HTML / CSS
才发现的超链接js导致网页中GIF动画停止的解决方法
2007/11/02 Javascript
javascript 写类方式之六
2009/07/05 Javascript
JavaScrip单线程引擎工作原理分析
2010/09/04 Javascript
jQuery链使用指南
2015/01/20 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形网络(1)
2015/11/30 Javascript
详解AngularJS中的http拦截
2016/02/09 Javascript
AngularJS使用自定义指令替代ng-repeat的方法
2016/09/17 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
2017/01/13 Javascript
jQuery实现图片滑动效果
2017/03/08 Javascript
微信小程序开发之数据存储 参数传递 数据缓存
2017/04/13 Javascript
javascript中mouseenter与mouseover的异同
2017/06/06 Javascript
vue的全局提示框组件实例代码
2018/02/26 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
2018/06/15 Javascript
jQuery实现的卷帘门滑入滑出效果【案例】
2019/02/18 jQuery
一步快速解决微信小程序中textarea层级太高遮挡其他组件
2019/03/04 Javascript
js取0-9随机取4个数不重复的数字代码实例
2019/03/27 Javascript
vue+element UI实现树形表格带复选框的示例代码
2019/04/16 Javascript
Python装饰器(decorator)定义与用法详解
2018/02/09 Python
python 中文件输入输出及os模块对文件系统的操作方法
2018/08/27 Python
学习python的前途 python挣钱
2019/02/27 Python
python3.6根据m3u8下载mp4视频
2019/06/17 Python
Django框架安装方法图文详解
2019/11/04 Python
Python私有属性私有方法应用实例解析
2020/09/15 Python
爱尔兰领先的在线体育用品零售商:theGAAstore
2018/04/16 全球购物
什么是Oracle的后台进程background processes?都有哪些后台进程?
2012/04/26 面试题
语文教学随笔感言
2014/02/18 职场文书
村级环境卫生整治方案
2014/05/04 职场文书
法定代表人授权委托书范文
2014/08/02 职场文书
群众路线教育实践活动个人对照检查材料
2014/09/22 职场文书
幼儿园园长个人总结
2015/03/02 职场文书
市场督导岗位职责
2015/04/10 职场文书
《分数的意义》教学反思
2016/02/20 职场文书
优秀大学生申请书
2019/06/24 职场文书
python函数的两种嵌套方法使用
2022/04/02 Python