• 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/

    chromedriver驱动安装完成后校验是否安装成功:

    1.驱动下载完成,解压
    2.将解压后文件chromedriver.exe复制到python的Scripts安装目录下(我的:E:PythonPython36-32Scripts),并且添加到path环境变量
    3.将目录chrome的安装目录添加到path环境变量。(我的:C:Program Files (x86)GoogleChromeApplicationchrome.exe)
    4.运行下面代码:成功打开百度即为成功:
            from selenium import webdriver
            driver = webdriver.Chrome()       
      driver.get('http://www.baidu.com')
    每天努力一点,每天学习一点。 Keep Moving...
  • 相关阅读:
    求相同号码一天内的上网流量——mapreduce
    scala初学
    对web日志文件实现按照人员、行为分类
    08 ROS阶段总结——package.xml 和 CMakeLists.txt 详细解读
    06 ROS中的节点、话题和服务
    07 ROS 的常见消息类型
    01 ROS下的三维点云数据处理(一)点云数据来源
    01 Opencv系列(一)ROS和opencv图像数据的转换
    01 ROS的运行架构——环境变量和工作空间
    02 Opencv系列(二)ROS框架下的摄像头调用方法
  • 原文地址:https://www.cnblogs.com/channy14/p/8620235.html
Copyright © 2020-2023  润新知