近期做网页自动化用到内容小结

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操作浏览器及截图小结的更多相关文章

  1. 第三百五十节,Python分布式爬虫打造搜索引擎Scrapy精讲—selenium模块是一个python操作浏览器软件的一个模块,可以实现js动态网页请求

    第三百五十节,Python分布式爬虫打造搜索引擎Scrapy精讲—selenium模块是一个python操作浏览器软件的一个模块,可以实现js动态网页请求 selenium模块 selenium模块为 ...

  2. 二十九 Python分布式爬虫打造搜索引擎Scrapy精讲—selenium模块是一个python操作浏览器软件的一个模块,可以实现js动态网页请求

    selenium模块 selenium模块为第三方模块需要安装,selenium模块是一个操作各种浏览器对应软件的api接口模块 selenium模块是一个操作各种浏览器对应软件的api接口模块,所以 ...

  3. selenium3 + python 操作浏览器基本方法

    from selenium import webdriverimport time as t # driver = webdriver.Chrome()# driver.get("http: ...

  4. selenium+python操作浏览器

    前面已经把环境搭建好了,下面我们就正式学习selenium的webdriver框架.本篇主要讲如何用Python调用webdriver框架的API,对浏览器做一些基本的操作,如打开.前进.后退.刷新. ...

  5. selenium webdriver python 操作浏览器

    新建driver driver=webdriver.Firefox() driver=webdriver.Ie() driver=webdriver.Chrome()   打开一个链接 driver. ...

  6. python 操作浏览器打开指定网页

    #! /usr/bin/env python # encoding=utf8 import webbrowser import time webbrowser.open("http://ww ...

  7. splinter(python操作浏览器魔魁啊)

    from splinter import Browser def main(): browser = Browser() browser.visit('http://google.com') brow ...

  8. Python实现浏览器自动化操作

    Python实现浏览器自动化操作 (2012-08-02 17:35:43) 转载▼     最近在研究网站自动登录的问题,涉及到需要实现浏览器自动化操作,网上有不少介绍,例如使用pamie,但是只是 ...

  9. [转载]Python实现浏览器自动化操作

    原文地址:Python实现浏览器自动化操作作者:rayment   最近在研究网站自动登录的问题,涉及到需要实现浏览器自动化操作,网上有不少介绍,例如使用pamie,但是只是支持IE,而且项目也较久没 ...

随机推荐

  1. sourceInsight与IAR的同步

    编写与编译二者同步:引用http://bbs.ednchina.com/BLOG_ARTICLE_3013475.HTM 1 在IAR中新建一个工程TEST.菜单栏 File->New-> ...

  2. MySQL 单条记录长度最大65535

    今天设计表结构,加了几个字段,结果报错了 Ligne trop grande. Le taille maximale d'une ligne, sauf les BLOBs, est 65535... ...

  3. Linux ssh服务器配置

    配置文件在/etc/sshd_config,注意只有root可rw,其他所有用户权限为---. 配置说明可参考man sshd_config. 如果更改了服务器端口号,并且启用了SELinux,需要执 ...

  4. PAT 乙级 1077 互评成绩计算 (20)

    在浙大的计算机专业课中,经常有互评分组报告这个环节.一个组上台介绍自己的工作,其他组在台下为其表现评分.最后这个组的互评成绩是这样计算的:所有其他组的评分中,去掉一个最高分和一个最低分,剩下的分数取平 ...

  5. 利用原生js的Dom操作实现简单的ToDoList的效果

    效果如下: 前端及js代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charse ...

  6. 2018年最新PHP面试题

    面试之前多看看公司的资料,可以看出面试的公司主要做什么,电商,数据库,php函数,sql的优化,接口,session和cookie等经常会问到,都是必问之题,这其中有一部分题目摘抄自网络,回答也不错 ...

  7. SCCM 2012 R2实战系列之二:前提工作准备

    在上一篇中,我们完成了SQL Server 2012的安装和配置.现在跟大家分享SCCM安装前的准备工作. 2.1 SCCM 2012 R2 准备工作 2.1.1 创建并分配System Manage ...

  8. Find the peace with yourself

    The purpose of being mature is to find the real calm and peace with yourself. Or you can say the tur ...

  9. 可变卷积Deforable ConvNet 迁移训练自己的数据集 MXNet框架 GPU版

    [引言] 最近在用可变卷积的rfcn 模型迁移训练自己的数据集, MSRA官方使用的MXNet框架 环境搭建及配置:http://www.cnblogs.com/andre-ma/p/8867031. ...

  10. 第11章 拾遗5:IPv6和IPv4共存技术(3)_NAT-PT技术【全书完】

    6.4 NAT-PT (1)NAT-PT和NAT的差别 ①NAT-PT(附带协议转换的网络地址转换)技术秉承NAT技术的思想,但在原理方面大有不同. ②NAT-PT和NAT本质的区别在于应用场合的不同 ...