Selenium2+python自动化-操作浏览器基本方法
前言
从这篇开始,正式学习selenium的webdriver框架。我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可视化工具,我们要学的是webdriver框架的API。本篇主要讲如何用Python调用webdriver框架的API,对浏览器做一些常规的操作,如打开、前进、后退、刷新、设置窗口大小、截屏、退出等操作。
一、打开网站
1.第一步:从selenium里面导入webdriver模块;
2.打开Firefox浏览器(Ie和Chrome对应下面的);
3.打开百度网址;
from selenium import webdriver # 导入模块 driver = webdriver.Firefox() # 火狐浏览器
# driver = webdriver.Chrome() # 谷歌浏览器
# driver = webdriver.Ie() # IE浏览器
driver.get("https://www.baidu.com/")
二、设置休眠
1.由于打开百度网址后,页面加载需要几秒钟,所以最好等到页面加载完成后再继续下一步操作;
2.导入time模块,time模块是Python自带的,所以无需下载;
3.设置等待时间,单位是秒(s),时间值可以是小数也可以是整数;
from selenium import webdriver
import time # 导入时间模块
driver = webdriver.Firefox() # 火狐浏览器
driver.get("https://www.baidu.com/")
time.sleep(1) # 设置休眠时间(秒),也可以为小数
三、页面刷新
1.有时候页面操作后,数据可能没及时同步,需要重新刷新;
2.这里可以模拟刷新页面操作,相当于浏览器输入框后面的刷新按钮;
from selenium import webdriver
import time
driver = webdriver.Firefox() # 火狐浏览器
driver.get("https://www.baidu.com/")
time.sleep(1) # 设置休眠时间(秒)
driver.refresh() # 刷新操作
四、前进和后退
1.当在一个浏览器打开两个页面后,想返回上一页面,相当于浏览器左上角的左箭头按钮;
2.返回到上一页面后,也可以切换到下一页,相当于浏览器左上角的右箭头按钮;
from selenium import webdriver
import time driver = webdriver.Firefox() # 火狐浏览器
driver.get("https://www.baidu.com/")
time.sleep(5) # 设置休眠时间(秒)
driver.get("https://www.hao123.com/")
time.sleep(5) # 设置休眠时间(秒)
driver.back() # f返回上一页
driver.forward() # 下一页
五、设置窗口大小
1.可以设置浏览器窗口大小,如设置窗口大小为手机分辨率540*960;
2.也可以最大化窗口;
from selenium import webdriver
import time driver = webdriver.Firefox() # 火狐浏览器
driver.get("https://www.baidu.com/")
time.sleep(5) # 设置休眠时间(秒)
driver.set_window_size(540, 960) # 设置窗口大小
driver.maximize_window() # 窗口最大化
六、退出
1.退出有两种方式,一种是close;另外一种是quit;
2.close用于关闭当前窗口,当打开的窗口较多时,就可以用close关闭部分窗口;
3.quit用于结束进程,关闭所有的窗口;
4.最后结束测试,要用quit。quit可以回收c盘的临时文件;
from selenium import webdriver
import time driver = webdriver.Firefox() # 火狐浏览器
driver.get("https://www.baidu.com/")
time.sleep(5) # 设置休眠时间(秒)
driver.close() # 关闭当前窗口
driver.quit() # 退出浏览器
七、鼠标事件操作
1.鼠标不仅仅可以点击(click),鼠标还有其它的操作,如:鼠标悬停在某个元素上,鼠标右击,鼠标按住某个按钮拖到;
2.鼠标事件需要先导入模块:“from selenium.webdriver.common.action_chains import ActionChains”
3.鼠标移动悬停: move_to_element
4.执行: perform
# 这里以百度页面设置按钮为例
from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver
driver.get("https://www.baidu.com")
# 定位设置元素
sz = driver.find_element_by_link_text("设置")
# 鼠标事件:移动操作
ActionChains(driver).move_to_element(sz).perform()
5.除了常用的鼠标悬停事件外,还有:
# 执行: perform
# 右击: context_click()
# 双击: double_ click()
# 拖动: drag_and_drop(source, target) # source:鼠标拖动的源元素。 Target:鼠标释放的目标元素。
依葫芦画瓢,替换上面案例中对应的鼠标事件就可以了。
八、键盘事件操作
1.selenium提供了一整套的模拟键盘操作事件,一下讲了常用的键盘事件;
2.模拟键盘的操作需要先导入键盘模块:“from selenium.webdriver.common.keys import Keys”
3.模拟回车enter键,可以用send_keys(Keys.ENTER);
from selenium import webdriver
from selenium.webdriver.common.keys import Keys driver = webdriver.Firefox()
driver.get("https://www.baidu.com/")
# 定位元素
driver.find_element_by_xpath("//*[@id='kw']").send_keys("文本内容")
# 模拟鼠标回车按键
driver.find_element_by_xpath("//*[@id='kw']").send_keys(Keys.ENTER)
4.其它常见的键盘操作:
1、 F5键: send_keys(Keys.F5)
2、 F12键: send_keys(Keys.F12)
3、 F1键: send_keys(Keys.F1) # F1 ~ F12键使用方式一样
4、 空格键(space):send_keys(Keys.SPACE)
5、 回退键(Esc): send_keys(Keys.ESCAPE)
6、 回车键(Enter):send_keys(Keys.ENTER)
7、 删除键(BackSpace):send_keys(Keys.BACK_SPACE)
8、 制表键(Tab):send_keys(Keys.TAB)
9、 全选(Ctel+A): send_keys(Keys.CONTROL, ‘a’)
10、复制(Ctel+C): send_keys(Keys.CONTROL, ‘c’)
11、粘贴(Ctel+V): send_keys(Keys.CONTROL, ‘v’)
12、剪切(Ctel+X): send_keys(Keys.CONTROL, ‘x’)
Selenium2+python自动化-操作浏览器基本方法的更多相关文章
- Selenium2+python自动化61-Chrome浏览器(chromedriver)【转载】
前言 selenium2启动Chrome浏览器是需要安装驱动包的,但是不同的Chrome浏览器版本号,对应的驱动文件版本号又不一样,如果版本号不匹配,是没法启动起来的. 一.Chrome遇到问题 1. ...
- Selenium2+python自动化45-18种定位方法(find_elements)
前言 江湖传言,武林中流传八种定位,其中xpath是宝刀屠龙,css是倚天剑. 除了这八种,其实还有十种定位方法,眼看就快失传了,今天小编让失传已久的定位方法重出江湖! 一.十八种定位方法 前八种是大 ...
- Selenium2+Python自动化-处理浏览器弹窗(转载)
本篇转自博客:上海-小T 原文地址:http://blog.csdn.net/real_tino/article/details/59068827 我们在浏览网页时经常会碰到各种花样的弹窗,在做UI自 ...
- Selenium2+python自动化45-18种定位方法(find_elements)【转载】
前言 江湖传言,武林中流传八种定位,其中xpath是宝刀屠龙,css是倚天剑. 除了这八种,其实还有十种定位方法,眼看就快失传了,今天小编让失传已久的定位方法重出江湖! 一.十八种定位方法 前八种是大 ...
- Selenium2+python自动化65-js定位几种方法总结
Selenium2+python自动化65-js定位几种方法总结 前言 本篇总结了几种js常用的定位元素方法,并用js点击按钮,对input输入框输入文本 一.以下总结了5种js定位的方法 除了i ...
- Selenium2+python自动化13-Alert
不是所有的弹出框都叫alert,在使用alert方法前,先要识别出它到底是不是alert.先认清楚alert长什么样子,下次碰到了,就可以用对应方法解决.alert\confirm\prompt弹出框 ...
- Selenium2+python自动化55-unittest之装饰器(@classmethod)
前言 前面讲到unittest里面setUp可以在每次执行用例前执行,这样有效的减少了代码量,但是有个弊端,比如打开浏览器操作,每次执行用例时候都会重新打开,这样就会浪费很多时间. 于是就想是不是可以 ...
- Selenium2+python自动化41-绕过验证码(add_cookie)
前言 验证码这种问题是比较头疼的,对于验证码的处理,不要去想破解方法,这个验证码本来就是为了防止别人自动化登录的.如果你能破解,说明你们公司的验证码吗安全级别不高,那就需要提高级别了. 对于验证码,要 ...
- Selenium2+python自动化39-关于面试的题
前言 最近看到群里有小伙伴贴出一组面试题,最近又是跳槽黄金季节,小编忍不住抽出一点时间总结了下, 回答不妥的地方欢迎各位高手拍砖指点. 一.selenium中如何判断元素是否存在? 首先selen ...
随机推荐
- R中的apply族函数和多线程计算
一.apply族函数 1.apply 应用于矩阵和数组 # apply # 1代表行,2代表列 # create a matrix of 10 rows x 2 columns m <- ma ...
- Mysql查询正在运行的事务
查询 正在执行的事务:SELECT * FROM information_schema.INNODB_TRX 根据这个事务的线程ID(trx_mysql_thread_id): 可以使用mysql命令 ...
- Swift基础学习笔记 一
之前学习过一段时间swift,由于目前开发的项目还是用的OC,一段时间不看swift又基本忘干净了,好记性不如烂笔头,还是用博客记录一下自己学的东西吧. 基本数据类型: 1.常量(let)和变量(va ...
- Java中 方法的多态 简析图
代码如下: public class Client{ public static void main(String[] args){ Person p = new Person() ...
- [JLOI2014]松鼠的新家(线段树,树链剖分)
题目描述 松鼠的新家是一棵树,前几天刚刚装修了新家,新家有n个房间,并且有n-1根树枝连接,每个房间都可以相互到达,且俩个房间之间的路线都是唯一的.天哪,他居然真的住在”树“上. 松鼠想邀请小熊维尼前 ...
- PHP-掌握基本的分布式架构思想
虽然说写PHP目前都是接触的业务代码,发现写久了,也要熟悉相应的架构 在高并发,高可用的系统下,都是使用高性能的分布式架构,最近在学习相关知识 分享一张图片: 欢迎关注公众号[phper的进阶之路], ...
- Kafka解惑之时间轮 (TimingWheel)
Kafka中存在大量的延迟操作,比如延迟生产.延迟拉取以及延迟删除等.Kafka并没有使用JDK自带的Timer或者DelayQueue来实现延迟的功能,而是基于时间轮自定义了一个用于实现延迟功能的定 ...
- Python学习 :面向对象 -- 三大特性
面向对象的三大特性 一.封装 把数据.值.变量放入到对象中 构造方法 _init_方法 特殊作用: 在 obj = 类名() 执行时: 内部自动执行两个步骤: 1.创建对象 2.通过对象执行类中的一个 ...
- 用gogs搭建git服务器
Gogs 是一款极易搭建的自助 Git 服务. Gogs 的目标是打造一个最简单.最快速和最轻松的方式搭建自助 Git 服务.使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 G ...
- Go 学习之路:异常处理defer,panic,recover
Go没有像Java那样的异常机制,它不能抛出异常.因为设计者们认为,将异常与控制结构混在一起容易使得代码变得混乱.于是乎引入Exception处理: defer,panic,recover; 简单描述 ...