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 相关文章推荐
在IIS服务器上以CGI方式运行Python脚本的教程
Apr 25 Python
对Python中range()函数和list的比较
Apr 19 Python
Pandas读取并修改excel的示例代码
Feb 17 Python
python字符串和常用数据结构知识总结
May 21 Python
python2和python3在处理字符串上的区别详解
May 29 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
Oct 01 Python
Python之指数与E记法的区别详解
Nov 21 Python
Flask项目中实现短信验证码和邮箱验证码功能
Dec 05 Python
简单了解Django ORM常用字段类型及参数配置
Jan 07 Python
Python astype(np.float)函数使用方法解析
Jun 08 Python
Python程序慢的重要原因
Sep 04 Python
python实现企业微信定时发送文本消息的示例代码
Nov 24 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分页函数代码(简单实用型)
2010/12/02 PHP
PHP中输出转义JavaScript代码的实现代码
2011/04/22 PHP
PHP中文分词的简单实现代码分享
2011/07/17 PHP
PHP连接MySQL数据库操作代码实例解析
2020/07/11 PHP
JavaScript中使用正则匹配多条,且获取每条中的分组数据
2010/11/30 Javascript
仿微博字符限制效果实现代码
2012/04/20 Javascript
JS数学函数Exp使用说明
2012/08/09 Javascript
jquery实现漂浮在网页右侧的qq在线客服插件示例
2013/05/13 Javascript
JS获取当前日期和时间的简单实例
2013/11/19 Javascript
扩展IE中一些不兼容的方法如contains、startWith等等
2014/01/09 Javascript
js实现页面a向页面b传参的方法
2016/05/29 Javascript
Bootstrap路径导航与分页学习使用
2017/02/08 Javascript
php输出全部gb2312编码内的汉字方法
2017/03/04 Javascript
JS正则表达式判断有效数实例代码
2017/03/13 Javascript
Vue组件开发之LeanCloud带图形校验码的短信发送功能
2017/11/07 Javascript
vue+vue-validator 表单验证功能的实现代码
2017/11/13 Javascript
微信小程序实现页面跳转传值以及获取值的方法分析
2017/12/18 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
2020/05/31 Javascript
Vue切换div显示隐藏,多选,单选代码解析
2020/07/14 Javascript
Vue 组件的挂载与父子组件的传值实例
2020/09/02 Javascript
python自动安装pip
2014/04/24 Python
Python实现比较两个列表(list)范围
2015/06/12 Python
Python注释详解
2016/06/01 Python
Python计算两个日期相差天数的方法示例
2017/05/23 Python
使用XML库的方式,实现RPC通信的方法(推荐)
2017/06/14 Python
Python封装原理与实现方法详解
2018/08/28 Python
python实现多进程代码示例
2018/10/31 Python
Python3创建Django项目的几种方法(3种)
2020/06/03 Python
利用Bootstrap实现漂亮简洁的CSS3价格表实例源码
2017/03/02 HTML / CSS
关于保护环境的标语
2014/06/09 职场文书
暖通工程师岗位职责
2014/06/12 职场文书
公司自我介绍演讲稿
2014/08/21 职场文书
酒店端午节活动方案
2014/08/26 职场文书
工程安全生产协议书
2014/11/21 职场文书
2015年大学元旦晚会活动策划书
2014/12/09 职场文书
2014年语文教师工作总结
2014/12/18 职场文书