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,而且项目也较久没 ...
随机推荐
- TensorFlow:tf.nn.max_pool实现池化操作
tf.nn.max_pool(value, ksize, strides, padding, name=None) 参数是四个,和卷积很类似: 第一个参数value:需要池化的输入,一般池化层接在卷积 ...
- bzoj5044: 岛屿生成
Description 小Q设计了一款2D游戏,它的地图建立在二维笛卡尔坐标系上.这个游戏最大的特色就是可以随机生成地图,但是 岛屿生成却给小Q带来了巨大的麻烦.一个岛屿可以看成一个恰好有n个顶点的简 ...
- 把1,2,3…n*n 的数字按照顺时针螺旋的形式填入数字矩阵
从键盘输入一个整数(1~20)则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中.例如:输入数字2,则程序输出:1 24 3输入数字3,则程序输出:1 2 38 9 47 ...
- java设计模式-Observe
一.背景 请模拟下面情形: 小孩在睡觉,醒来后要求吃东西 代码: class Child{ private boolean wakenUp = false; void wakeUp(){ wake ...
- PAT 乙级 1060 爱丁顿数(25) C++版
1060. 爱丁顿数(25) 时间限制 250 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 英国天文学家爱丁顿很喜欢骑车.据说他 ...
- 廖雪峰Java6 IO编程-2input和output-5操作zip
1.ZipInputStream是一种FilterInputStream 可以直接读取zip的内容 InputStream->FilterInputStream->InflateInput ...
- 让可等待的计时器添加APC调用
// TimerAPCRoutine.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <windows.h> ...
- go语言学习--go的临时对象池--sync.Pool
一个sync.Pool对象就是一组临时对象的集合.Pool是协程安全的. Pool用于存储那些被分配了但是没有被使用,而未来可能会使用的值,以减小垃圾回收的压力.一个比较好的例子是fmt包,fmt包总 ...
- Recyclerview 实现上拉加载更多
LinearLayoutManager layoutManager; layoutManager = new LinearLayoutManager(getActivity()); layoutMan ...
- hadoop ha环境下的datanode启动报错java.lang.NumberFormatException: For input string: "10m"
hadoop ha环境启动start-dfs.sh的时候datanode启动不了,并且报错. [hadoop@datanode2 ~]$ cat /home/hadoop/hadoop-2.7.3/l ...