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 拷贝对象(深拷贝deepcopy与浅拷贝copy)
Sep 06 Python
Python中列表和元组的相关语句和方法讲解
Aug 20 Python
python版本的读写锁操作方法
Apr 25 Python
详解Python判定IP地址合法性的三种方法
Mar 06 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
Apr 18 Python
Python爬虫之正则表达式的使用教程详解
Oct 25 Python
pycharm解决关闭flask后依旧可以访问服务的问题
Apr 03 Python
Python urllib.request对象案例解析
May 11 Python
Python脚本如何在bilibili中查找弹幕发送者
Jun 04 Python
python中return如何写
Jun 18 Python
Opencv常见图像格式Data Type及代码实例
Nov 02 Python
python库sklearn常用操作
Aug 23 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 中使用随机数的三个步骤
2006/10/09 PHP
比较discuz和ecshop的截取字符串函数php版
2012/09/03 PHP
php打开远程文件的方法和风险及解决方法
2013/11/12 PHP
PHP生成压缩文件实例
2015/02/07 PHP
PHP定时执行任务的3种方法详解
2015/12/21 PHP
My Desktop :) 桌面式代码
2008/12/29 Javascript
JavaScript 异步调用框架 (Part 1 - 问题 & 场景)
2009/08/03 Javascript
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
2011/11/21 Javascript
如何实现JavaScript动态加载CSS和JS文件
2020/12/28 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
2015/12/03 Javascript
jQuery实现简单的滑动导航代码(移动端)
2017/05/22 jQuery
JavaScript hasOwnProperty() 函数实例详解
2017/08/04 Javascript
Vue.js表单标签中的单选按钮、复选按钮和下拉列表的取值问题
2017/11/22 Javascript
手淘flexible.js框架使用和源代码讲解小结
2018/10/15 Javascript
jQuery鼠标滑过横向时间轴样式(代码详解)
2019/11/01 jQuery
基于vue-draggable 实现三级拖动排序效果
2020/01/10 Javascript
JS简易计算器实例讲解
2020/06/30 Javascript
python内存管理分析
2015/04/08 Python
Python基于回溯法子集树模板解决野人与传教士问题示例
2017/09/11 Python
django中send_mail功能实现详解
2018/02/06 Python
怎么使用pipenv管理你的python项目
2018/03/12 Python
解决nohup重定向python输出到文件不成功的问题
2018/05/11 Python
python实现本地图片转存并重命名的示例代码
2018/10/27 Python
Django中在xadmin中集成DjangoUeditor过程详解
2019/07/24 Python
Python正则表达式高级使用方法汇总
2020/06/18 Python
html5本地存储 localStorage操作使用详解
2016/09/20 HTML / CSS
孕妇内衣和胸罩:Cake Maternity
2018/07/16 全球购物
青年文明号事迹材料
2014/01/18 职场文书
安全资金保障制度
2014/01/23 职场文书
小学数学教学反思
2014/02/02 职场文书
观看《永远的雷锋》心得体会
2014/03/12 职场文书
英文请假条
2014/04/11 职场文书
股权转让协议书范本
2014/04/12 职场文书
演讲稿格式
2014/04/30 职场文书
我们的节日中秋节活动总结
2015/03/23 职场文书
使用python向MongoDB插入时间字段的操作
2021/05/18 Python