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中的左斜杠、右斜杠(正斜杠和反斜杠)
Aug 30 Python
详解Python pygame安装过程笔记
Jun 05 Python
浅谈Python中的作用域规则和闭包
Mar 20 Python
python实现手机销售管理系统
Mar 19 Python
python and or用法详解
Jun 26 Python
python实现最小二乘法线性拟合
Jul 19 Python
Python OpenCV调用摄像头检测人脸并截图
Aug 20 Python
Python3.7+tkinter实现查询界面功能
Dec 24 Python
详解pycharm连接不上mysql数据库的解决办法
Jan 10 Python
浅谈tensorflow 中tf.concat()的使用
Feb 07 Python
python字符串下标与切片及使用方法
Feb 13 Python
Python如何存储数据到json文件
Mar 09 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函数preg_match_all正则表达式的基本使用详细解析
2013/08/31 PHP
PHP实现支持GET,POST,Multipart/form-data的HTTP请求类
2014/09/24 PHP
列举PHP的Yii 2框架的开发优势
2015/07/03 PHP
基于PHP实现商品成交时发送短信功能
2016/05/11 PHP
Yii2框架dropDownList下拉菜单用法实例分析
2016/07/18 PHP
脚本收藏iframe
2006/07/21 Javascript
在页面中js获取光标/鼠标的坐标及光标的像素坐标
2013/11/11 Javascript
JS验证邮箱格式是否正确的代码
2013/12/05 Javascript
table对象中的insertRow与deleteRow使用示例
2014/01/26 Javascript
JavaScrip调试技巧之断点调试
2015/10/22 Javascript
JavaScript的代码编写格式规范指南
2015/12/07 Javascript
js实现日历与定时器
2017/02/22 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
2017/06/15 Javascript
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
2018/03/01 Javascript
json字符串传到前台input的方法
2018/08/06 Javascript
JS实现简单tab选项卡切换
2019/10/25 Javascript
[01:14]辉夜杯战队访谈宣传片—NEWBEE.Y
2015/12/26 DOTA
python的Template使用指南
2014/09/11 Python
更改Python命令行交互提示符的方法
2015/01/14 Python
Python随机数用法实例详解【基于random模块】
2017/04/18 Python
使用python读取txt文件的内容,并删除重复的行数方法
2018/04/18 Python
python XlsxWriter模块创建aexcel表格的实例讲解
2018/05/03 Python
Python基于多线程实现抓取数据存入数据库的方法
2018/06/22 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
2020/01/20 Python
Python偏函数Partial function使用方法实例详解
2020/06/17 Python
Python分类测试代码实例汇总
2020/07/23 Python
分享一个页面平滑滚动小技巧(推荐)
2019/10/23 HTML / CSS
北京RT科技有限公司.net工程师面试题
2013/02/15 面试题
区三好学生主要事迹
2014/01/30 职场文书
爱国演讲稿400字
2014/05/07 职场文书
销售简历自我评价怎么写
2014/09/26 职场文书
2014最新党员违纪检讨书
2014/10/12 职场文书
政风行风整改方案
2014/10/25 职场文书
2014年个人工作总结范文
2014/11/07 职场文书
大学军训的体会
2014/11/08 职场文书
车间质检员岗位职责
2015/04/08 职场文书