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实现批量下载图片的方法
Jul 08 Python
使用Python下载歌词并嵌入歌曲文件中的实现代码
Nov 13 Python
Python自定义类的数组排序实现代码
Aug 28 Python
Python读取sqlite数据库文件的方法分析
Aug 07 Python
python实现关键词提取的示例讲解
Apr 28 Python
python 字符串和整数的转换方法
Jun 25 Python
Python实现直方图均衡基本原理解析
Aug 08 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
Aug 08 Python
Python自动化爬取天眼查数据的实现
Jun 15 Python
如何使用pdb进行Python调试
Jun 30 Python
python之json文件转xml文件案例讲解
Aug 07 Python
Python利用FlashText算法实现替换字符串
Mar 31 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中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
2011/07/03 PHP
php操作SVN版本服务器类代码
2011/11/27 PHP
深入php define()函数以及defined()函数的用法详解
2013/06/05 PHP
PHP文件大小格式化函数合集
2014/03/10 PHP
适用于初学者的简易PHP文件上传类
2015/10/29 PHP
高质量PHP代码的50个实用技巧必备(下)
2016/01/22 PHP
PHP实现图片的等比缩放和Logo水印功能示例
2017/05/04 PHP
PHP两个n位的二进制整数相加问题的解决
2018/08/26 PHP
jquery.cookie() 方法的使用(读取、写入、删除)
2013/12/05 Javascript
javascript判断数组内是否重复的方法
2015/04/21 Javascript
使用控制台破解百小度一个月只准改一次名字
2015/08/13 Javascript
基于jQuery实现仿搜狐辩论投票动画代码(附源码下载)
2016/02/18 Javascript
谈一谈javascript中继承的多种方式
2016/02/19 Javascript
详解vue2.0脚手架的webpack 配置文件分析
2017/05/27 Javascript
从零开始用electron手撸一个截屏工具的示例代码
2018/10/10 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
2019/07/09 Javascript
vue-router 按需加载 component: () => import() 报错的解决
2020/09/22 Javascript
OpenLayers3实现对地图的基本操作
2020/09/28 Javascript
Python读写Redis数据库操作示例
2014/03/18 Python
Python基于twisted实现简单的web服务器
2014/09/29 Python
Python实现压缩文件夹与解压缩zip文件的方法
2018/09/01 Python
pyqt5 获取显示器的分辨率的方法
2019/06/18 Python
python并发爬虫实用工具tomorrow实用解析
2019/09/25 Python
HTML5的结构和语义(4):语义性的内联元素
2008/10/17 HTML / CSS
html5模拟平抛运动(模拟小球平抛运动过程)
2013/07/25 HTML / CSS
Aurora London官网:奢华、负担得起的皮革手袋
2020/08/01 全球购物
怎样在程序里获得一个空指针
2015/01/24 面试题
共产党员公开承诺书
2014/03/25 职场文书
电力安全事故反思
2014/04/27 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
求职自我评价范文
2015/03/09 职场文书
社区文明倡议书
2015/04/28 职场文书
Python超简单容易上手的画图工具库推荐
2021/05/10 Python
MySQL中distinct和count(*)的使用方法比较
2021/05/26 MySQL
Pytorch反向传播中的细节-计算梯度时的默认累加操作
2021/06/05 Python
SpringBoot项目中控制台日志的保存配置操作
2021/06/18 Java/Android