博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Selenium2+python自动化-操作浏览器基本方法
阅读量:5304 次
发布时间:2019-06-14

本文共 3520 字,大约阅读时间需要 11 分钟。

前言

  从这篇开始,正式学习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 webdriverimport time         # 导入时间模块driver = webdriver.Firefox()    # 火狐浏览器driver.get("https://www.baidu.com/")time.sleep(1)   # 设置休眠时间(秒),也可以为小数

三、页面刷新

1.有时候页面操作后,数据可能没及时同步,需要重新刷新;
2.这里可以模拟刷新页面操作,相当于浏览器输入框后面的刷新按钮;

from selenium import webdriverimport timedriver = webdriver.Firefox()    # 火狐浏览器driver.get("https://www.baidu.com/")time.sleep(1)   # 设置休眠时间(秒)driver.refresh()    # 刷新操作

四、前进和后退

1.当在一个浏览器打开两个页面后,想返回上一页面,相当于浏览器左上角的左箭头按钮;
2.返回到上一页面后,也可以切换到下一页,相当于浏览器左上角的右箭头按钮;

from selenium import webdriverimport timedriver = 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 webdriverimport timedriver = 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 webdriverimport timedriver = 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 ActionChainsfrom selenium import webdriverdriver.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 webdriverfrom selenium.webdriver.common.keys import Keysdriver = 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’)

 

转载于:https://www.cnblogs.com/hoyun/p/10452714.html

你可能感兴趣的文章
UVA - 1592 Database
查看>>
Fine Uploader文件上传组件
查看>>
javascript中的传递参数
查看>>
objective-c overview(二)
查看>>
python查询mangodb
查看>>
consonant combination
查看>>
驱动的本质
查看>>
Swift的高级分享 - Swift中的逻辑控制器
查看>>
Swagger简单介绍
查看>>
Python数据分析入门案例
查看>>
vue-devtools 获取到 vuex store 和 Vue 实例的?
查看>>
Linux 中【./】和【/】和【.】之间有什么区别?
查看>>
内存地址对齐
查看>>
看门狗 (监控芯片)
查看>>
css背景样式
查看>>
JavaScript介绍
查看>>
开源网络漏洞扫描软件
查看>>
yum 命令跳过特定(指定)软件包升级方法
查看>>
创新课程管理系统数据库设计心得
查看>>
Hallo wolrd!
查看>>