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,而且项目也较久没 ...
随机推荐
- xe5 android sample 中的 SimpleList 是怎样绑定的 [转]
C:\Users\Public\Documents\RAD Studio\12.0\Samples\FireMonkeyMobile 例子中的绑定方式如下图: 1.拖拽一个listview到界面上,然 ...
- Docker安装 和简单使用
1.安装依赖 yum install -y yum-utils device-mapper-persistent-data lvm2 2.这一步设置即将安装的是稳定版仓库 yum-config-man ...
- Azure ARM (15) 根据现有VHD文件,创建ARM VM
<Windows Azure Platform 系列文章目录> 在很多时候,我们需要根据现有VHD文件,创建ARM VM.在这里笔者简单介绍一下相关的Azure PowerShell 这里 ...
- Array and Colon in Matlab
1. Colon x=1:4 % x=[1 2 3 4] x=1:2:5 % x=[1 3 5] (递增值为2) 2. Array 用一个矩阵作为例子: A=[1 2 3; 4 5 6; 7 8 9 ...
- Oracle之ora-01031 insufficient privileges
解决ora-01031insufficient privileges错误 解决system用户不能登录的问题 alter user system account unlock id ...
- [UE4]碰撞机制
应用于两种情况: 一.射线追踪,LineTrace 1.射线来自某个Trace Channel 2.Trace Channel 默认有两个:Visibility(不是可见的意思.只是Channel名称 ...
- Course List for Student
题目描述 Zhejiang University has 40000 students and provides 2500 courses. Now given the student name li ...
- vue 父组件给子组件传值 Vue父组件给子组件传方法 Vue父组件把整个实例传给子组件
Home.vue <template> <!-- 所有的内容要被根节点包含起来 --> <div id="home"> <v-header ...
- SCCM 2012 R2实战系列之一:SQL安装
大家好,从今天开始跟大家一起分享自己学习SCCM 2012 R2的一些心得和具体的部署配置,希望能帮到大家.由于SCCM部署的步骤比较复杂,内容也比较多,所以我把SCCM整个部署过程分为以下三个章节: ...
- Mybatis 系列1-环境搭建
[Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...