python操作浏览器及截图小结
近期做网页自动化用到内容小结
1、打开浏览器
1)打开默认配置的浏览器
from selenium import webdriver
driver = webdriver.Firefox()
"""chrome浏览器
driver = webdriver.Chrome()
"""
2)带配置打开浏览器
from selenium import webdriver
profile = webdriver.FirefoxProfile(profile_path) #profile_path为ff配置文件的路径,cmd下进入ff安装目录,执行firefox.exe -p可以进入定制我们需要的配置,比如添加插件、配置不记录历史等
driver = webdriver.Firefox(firefox_profile=profile)
"""chrome浏览器
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--user-data-dir=" + current_chrome_user_data)#current_chrome_user_data为浏览器配置文件的路径
driver = webdriver.Chrome(chrome_options = chrome_options)
"""
3)打开浏览器带插件
options = webdriver.ChromeOptions()
options.add_extension(os.path.join(pwd_path, "AdBlock_v3.22.1.crx"))
options.add_extension(os.path.join(pwd_path, "Adblock-Plus_v1.13.4.crx"))
driver = webdriver.Chrome(chrome_options=options)
说明:这种方式打开浏览器后,插件加载需要一段时间,重新安装的步骤,效率没有带配置打开浏览器的方式快
2、浏览器的其它常用操作
#打开百度页面
driver.get("https://www.baidu.com/")
#刷新页面
driver.refresh()
#返回上一页
driver.back()
#返回下一页
driver.forward()
#设置屏幕尺寸
driver.set_window_size(560, 960, CURRENT)
#最大化窗口
driver.maximize_window()
#退出浏览器,close()是关闭当前访问页面,quit()是退出浏览器,结束进程,且回收临时文件
driver.quit()
备注:浏览器及页面元素常用的函数及变量可参考https://www.cnblogs.com/yufeihlf/p/5764807.html
3、浏览器截图方式
1)selenium库
driver.get_screenshot_as_file(filename)
driver.save_screenshot(filename) 备注:save_screenshot(filename)在ff47版本以下可以截取长图!!!如果不需要测试浏览器兼容性等,可以用PhantomJS代替ff/chrome打开网页进行截图可截取长图
缺点:只能截取当前屏幕,无法截取长图
2)AutoItLibrary库封装的Get Screen Image关键字
AutoItLibrary.Get Screen Image
缺点:只能截取当前屏幕,无法截取长图
3)Selenium2Library库封装的Capture Page Screenshot关键字
Selenium2Library.Capture Page Screenshot
缺点:只能截取当前屏幕,无法截取长图
4)chrome浏览器自带的移动端截取长图方式
按F12打开调试窗,再按Ctrl+Shift+P组合键,输入capture full size screenshot回车即可截图
备注:可通过AutoItLibrary.Send方法往浏览器发送这些按键来实现截图,
缺点:截图过程中鼠标必须停留在浏览器窗口否则截图失败
5)浏览器安装截图插件
chrome/ff下推荐使用full page screen capture插件,可通过前面带配置的方式将插件包含进配置文件中,为插件截图设置快捷键,并且可以设置截图完成后自动保存到本地
打开浏览器后可通过AutoItLibrary.Send方法往浏览器发送截图快捷键进行截图
缺点:截图过程中鼠标必须停留在浏览器窗口否则截图失败
4、浏览器驱动下载
注意:浏览器版本和驱动版本必须对应,才能调用到驱动操作浏览器,具体某个浏览器版本需要哪个版本的插件可以百度一下
以下提供各个版本驱动的下载地址,下载时注意需要的系统版本等
1)chrome:http://npm.taobao.org/mirrors/chromedriver
2)firefox:https://github.com/mozilla/geckodriver/releases/
http://npm.taobao.org/mirrors/geckodriver/
python操作浏览器及截图小结的更多相关文章
- 第三百五十节,Python分布式爬虫打造搜索引擎Scrapy精讲—selenium模块是一个python操作浏览器软件的一个模块,可以实现js动态网页请求
第三百五十节,Python分布式爬虫打造搜索引擎Scrapy精讲—selenium模块是一个python操作浏览器软件的一个模块,可以实现js动态网页请求 selenium模块 selenium模块为 ...
- 二十九 Python分布式爬虫打造搜索引擎Scrapy精讲—selenium模块是一个python操作浏览器软件的一个模块,可以实现js动态网页请求
selenium模块 selenium模块为第三方模块需要安装,selenium模块是一个操作各种浏览器对应软件的api接口模块 selenium模块是一个操作各种浏览器对应软件的api接口模块,所以 ...
- selenium3 + python 操作浏览器基本方法
from selenium import webdriverimport time as t # driver = webdriver.Chrome()# driver.get("http: ...
- selenium+python操作浏览器
前面已经把环境搭建好了,下面我们就正式学习selenium的webdriver框架.本篇主要讲如何用Python调用webdriver框架的API,对浏览器做一些基本的操作,如打开.前进.后退.刷新. ...
- selenium webdriver python 操作浏览器
新建driver driver=webdriver.Firefox() driver=webdriver.Ie() driver=webdriver.Chrome() 打开一个链接 driver. ...
- python 操作浏览器打开指定网页
#! /usr/bin/env python # encoding=utf8 import webbrowser import time webbrowser.open("http://ww ...
- splinter(python操作浏览器魔魁啊)
from splinter import Browser def main(): browser = Browser() browser.visit('http://google.com') brow ...
- Python实现浏览器自动化操作
Python实现浏览器自动化操作 (2012-08-02 17:35:43) 转载▼ 最近在研究网站自动登录的问题,涉及到需要实现浏览器自动化操作,网上有不少介绍,例如使用pamie,但是只是 ...
- [转载]Python实现浏览器自动化操作
原文地址:Python实现浏览器自动化操作作者:rayment 最近在研究网站自动登录的问题,涉及到需要实现浏览器自动化操作,网上有不少介绍,例如使用pamie,但是只是支持IE,而且项目也较久没 ...
随机推荐
- jQuery模态框实现 后台添加删除修改Ip端口
主要用到,$('#i1').each(),标签里绑定函数可传参数this <!DOCTYPE html> <html lang="en"> <head ...
- S域传递函数的零点和极点
传递函数的极点就是对应微分方程的特征根(回忆一下,$\frac{1}{s+a}$是$e^{-a t}$的Laplace变换),因此它们决定了系统自由运动的模态. 传递函数的零点不直接形成自由运动的模态 ...
- 关于Javascript闭包(Closure)
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域 ...
- Hard commits, soft commits and transaction logs
“Hard commits are about durability, soft commits are about visibility“ Transaction Logs 首先介绍下solrcl ...
- 【SpringMVC】文件上传Expected MultipartHttpServletRequest: is a MultipartResolver错误解决
本文转载自:https://blog.csdn.net/lzgs_4/article/details/50465617 使用SpringMVC实现文件上传时,后台使用了 MultipartFile类, ...
- 使用R语言-为矩阵(表格)的行列命名
转自:http://www.dataguru.cn/article-2217-1.html R语言中经常进行矩阵(表格)数据的处理,在纷繁复杂的数据中,为其行列定义一个名字变得尤为重要.在处理巨量数据 ...
- Android开发之adb,$Sqlite篇
一. 操作系统: 1. linux操作系统: linux操作系统其实就是Linux内核,Linux内核[kernel]是整个操作系统的最底层,它负责整个硬件的驱动,以及提供各种系统所需的核心功能,包括 ...
- 图像处理PILLOW的使用
1.安装 pip install Pillow 2.使用 1)图片缩放 from PIL import Imageim = Image.open('dog.jpg') w,h = im.size #获 ...
- 使用jquery.mCustomScrollbar自定义滚动条(1)
参考博客:https://blog.csdn.net/cdnight/article/details/41351505 api网址:http://manos.malihu.gr/jquery-cust ...
- Hive格式各种格式下不同压缩算法的比较
原始Text格式的hive分区大小为119.2G. 压缩算法 Text格式 Parquet格式 ORC RCFile 不压缩 119.2G 54.1G 20.0G 98G Snappy压缩 30.2 ...