python操作浏览器及截图小结

时间:2024-02-18 10:48:24

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

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:\Python\Python36-32\Scripts),并且添加到path环境变量
3.将目录chrome的安装目录添加到path环境变量。(我的:C:\Program Files (x86)\Google\Chrome\Application\chrome.exe)
4.运行下面代码:成功打开百度即为成功:
        from selenium import webdriver
        driver = webdriver.Chrome()       
  driver.get(\'http://www.baidu.com\')