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操作MySQL数据库的方法分享
May 29 Python
记录Django开发心得
Jul 16 Python
Python的numpy库中将矩阵转换为列表等函数的方法
Apr 04 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
Jul 07 Python
django框架自定义用户表操作示例
Aug 07 Python
python如何求解两数的最大公约数
Sep 27 Python
python通过实例讲解反射机制
Oct 17 Python
基于Python pyecharts实现多种图例代码解析
Aug 10 Python
Pycharm安装python库的方法
Nov 24 Python
在pycharm创建scrapy项目的实现步骤
Dec 01 Python
Pytorch 如何实现LSTM时间序列预测
May 17 Python
使用Python的开发框架Brownie部署以太坊智能合约
May 28 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
提问的智慧
2006/10/09 PHP
PHP输入流php://input介绍
2012/09/18 PHP
php恢复数组的key为数字序列的方法
2015/04/28 PHP
php 自定义错误日志实例详解
2016/11/12 PHP
PHP面向对象程序设计之命名空间与自动加载类详解
2016/12/02 PHP
PHP中for循环与foreach的区别
2017/03/06 PHP
JavaScript获取GridView中用户点击控件的行号,列号
2009/04/14 Javascript
js获取客户端外网ip的简单实例
2013/11/21 Javascript
再谈Javascript中的基本类型和引用类型(推荐)
2016/07/01 Javascript
Vue数据驱动模拟实现5
2017/01/13 Javascript
BACKBONE.JS 简单入门范例
2017/10/17 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
vue 实现复制内容到粘贴板clipboard的方法
2018/03/17 Javascript
jQuery中元素选择器(element)简单用法示例
2018/05/14 jQuery
vue router带参数页面刷新或回退参数消失的解决方法
2019/02/27 Javascript
jsonp跨域获取百度联想词的方法分析
2019/05/13 Javascript
jQuery实现简单QQ聊天框
2020/08/27 jQuery
Python的shutil模块中文件的复制操作函数详解
2016/07/05 Python
python利用paramiko连接远程服务器执行命令的方法
2017/10/16 Python
django用户注册、登录、注销和用户扩展的示例
2018/03/19 Python
利用Python如何生成便签图片详解
2018/07/09 Python
python 实现敏感词过滤的方法
2019/01/21 Python
pytorch中的自定义数据处理详解
2020/01/06 Python
在TensorFlow中实现矩阵维度扩展
2020/05/22 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
2020/06/17 Python
科茨沃尔德家居商店:Scotts of Stow
2018/06/29 全球购物
年度献血先进个人事迹材料
2014/02/14 职场文书
查摆剖析材料范文
2014/09/30 职场文书
2014年网络管理员工作总结
2014/12/01 职场文书
财政局个人年终总结
2015/03/03 职场文书
研讨会通知
2015/04/27 职场文书
小兵张嘎电影观后感
2015/06/03 职场文书
盲山观后感
2015/06/11 职场文书
20180830晚上第一届KSL半决赛 雨神vs解冻(二龙 三炮解说)
2022/04/01 星际争霸
Java中Dijkstra(迪杰斯特拉)算法
2022/05/20 Java/Android
windows系统安装配置nginx环境
2022/06/28 Servers