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判断、获取一张图片主色调的2个实例
Apr 10 Python
详解Python的Django框架中的Cookie相关处理
Jul 22 Python
python win32 简单操作方法
May 25 Python
python中的decimal类型转换实例详解
Jun 26 Python
django 控制页面跳转的例子
Aug 06 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
Mar 16 Python
jupyter notebook参数化运行python方式
Apr 10 Python
Pytorch通过保存为ONNX模型转TensorRT5的实现
May 25 Python
python属于跨平台语言码
Jun 09 Python
python openssl模块安装及用法
Dec 06 Python
pyspark对Mysql数据库进行读写的实现
Dec 30 Python
Pytorch实现WGAN用于动漫头像生成
Mar 04 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中防止恶意刷新页面的代码小结
2012/10/31 PHP
php中删除字符串中最先出现某个字符的实现代码
2013/02/03 PHP
php中的字符编码转换函数用法示例
2014/10/20 PHP
PHP生成图片缩略图类示例
2017/01/12 PHP
PHP用户管理中常用接口调用实例及解析(含源码)
2017/03/09 PHP
Yii2下点击验证码的切换实例代码
2017/03/14 PHP
通过源码解析Laravel的依赖注入
2018/01/22 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
2019/10/10 PHP
常用js脚本
2006/12/03 Javascript
提高javascript效率 一次判断,而不要次次判断
2012/03/30 Javascript
基于jquery的禁用右键、文本选择功能、复制按键的实现代码
2013/08/27 Javascript
jQuery截取指定长度字符串代码
2014/08/21 Javascript
介绍一个简单的JavaScript类框架
2015/06/24 Javascript
AngularJS身份验证的方法
2016/02/17 Javascript
ES6生成器用法实例分析
2017/04/10 Javascript
JavaScript实现无刷新上传预览图片功能
2017/08/02 Javascript
360doc网站不登录就无法复制内容的解决方法
2018/01/27 Javascript
vue计算属性及使用详解
2018/04/02 Javascript
Bootstrap 实现表格样式、表单布局的实例代码
2018/12/09 Javascript
AngularJS实现的自定义过滤器简单示例
2019/02/02 Javascript
说说Vuex的getters属性的具体用法
2019/04/15 Javascript
jquery实现动态改变css样式的方法分析
2019/05/27 jQuery
python2和python3的输入和输出区别介绍
2018/11/20 Python
Python实现繁体中文与简体中文相互转换的方法示例
2018/12/18 Python
基于Python绘制美观动态圆环图、饼图
2020/06/03 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
2020/08/04 Python
Anaconda的安装与虚拟环境建立
2020/11/18 Python
CSS3实现渐变背景兼容问题
2020/05/06 HTML / CSS
HTML5的download属性详细介绍和使用实例
2014/04/23 HTML / CSS
警察思想汇报
2014/01/04 职场文书
矫正人员思想汇报
2014/01/08 职场文书
四好少年事迹材料
2014/01/12 职场文书
向国旗敬礼活动总结
2014/09/27 职场文书
公司周年庆典致辞
2015/07/30 职场文书
钓鱼岛事件感想
2015/08/11 职场文书