文档章节

docker中使用selenium实现截图

alazyer
 alazyer
发布于 2017/08/31 09:13
字数 256
阅读 142
收藏 1

在本地桌面版ubuntu中安装selenium可以正常执行, 但是放到docker中,不知道什么原因执行同样的程序会报各种错误,网上查找最终终于解决,原来是需要使用headless方式来进行截图,记录下过程

安装依赖

# 系统软件包
apt-get update
apt-get install -y python-pip xvfb xserver-xephyr chromium-browser chromium-browser-l10n libxi6 libgconf-2-4

# python依赖包
pip install -U pip
pip install selenium pyvirtualdisplay

# 安装chromedriver
wget -N http://chromedriver.storage.googleapis.com/2.32/chromedriver_linux64.zip
unzip chromedriver_linux64.zip -d /usr/local/bin

使用selenium进行截图

import os
from pyvirtualdisplay import Display
from selenium import webdriver

display = Display(visible=0, size=(3840, 2160))
display.start()

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--window-size=3840*2160')
browser = webdriver.Chrome('/usr/local/bin/chromedriver', chrome_options=chrome_options)

browser.get("http://www.djangoproject.com")
browser.save_screenshot('django.png')

browser.quit()
display.stop()

其他

在docker中截图可能处理的图片中会有乱码,这是由于字体问题导致的,可以在创建docker容器时,挂在当前桌面系统中的字体解决。

sudo docker run -it -v /usr/share/fonts:/usr/share/fonts --dns 114.114.114.114  ubuntu:14.04 /bin/bash

© 著作权归作者所有

上一篇: Pecan入门小结
下一篇: Web访问RabbitMQ
alazyer
粉丝 5
博文 68
码字总数 35105
作品 0
程序员
私信 提问
Selenium-spoon-plugin插件开发

对于web系统的自动化测试,selenium使用比较多,它支持多种语言java、python、C#等,本文中使用java。selenium执行case时,支持截图,代码如下: File file = ((TakesScreenshot)driver).ge...

youthflies
2014/07/30
335
1
扩展Python渗透测试探测器的新功能

文章首发个人博客:http://zmister.com/archives/185.html 第二篇:改善渗透测试探测器显示结果和添加新功能选项 本篇将会涉及: Selenium与PhantomJS 为渗透测试探测器添加截图功能 测试新功...

州的先生
2017/11/23
0
0
Zalenium 容器化扩展Selenium Grid

介绍 zalenium是一种以容器方式来动态创建和管理本地Selenium Grid的扩展。它使用docker-selenium在本地运行基于Firefox和Chrome的测试。 启动 前提条件 运行Docker引擎,且版本要大于1.11 ...

wywincl_wy
2017/08/31
0
0
如何在自动化测试中实现精准截图?

今天分享的这个技能可以说是灰常有用,做自动化测试,无论是Web端的Selenium(Appium的使用基本类似Selenium)还是移动端的UiAutomator2.0都有提供相应的截屏API,直接调用对应方法轻松截屏,...

测试开发栈
2018/08/08
0
0
自动化测试远程驱动静默方式(Jenkins+Selenium+Chrome+Docker)

说明 由于之前一直使用PhantomJS作为线上静默方案,并且此方案PhantomJS驱动的Binary和测试代码都在同一台服务器上,导致有时候本地做好的Case经常无法完整的正常运作,并且大多数情况下,测...

littlebrain4solving
2017/08/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring使用ThreadPoolTaskExecutor自定义线程池及实现异步调用

多线程一直是工作或面试过程中的高频知识点,今天给大家分享一下使用 ThreadPoolTaskExecutor 来自定义线程池和实现异步调用多线程。 一、ThreadPoolTaskExecutor 本文采用 Executors 的工厂...

CREATE_17
今天
5
0
CSS盒子模型

CSS盒子模型 组成: content --> padding --> border --> margin 像现实生活中的快递: 物品 --> 填充物 --> 包装盒 --> 盒子与盒子之间的间距 content :width、height组成的 内容区域 padd......

studywin
今天
7
0
修复Win10下开始菜单、设置等系统软件无法打开的问题

因为各种各样的原因导致系统文件丢失、损坏、被修改,而造成win10的开始菜单、设置等系统软件无法打开的情况,可以尝试如下方法解决 此方法只在部分情况下有效,但值得一试 用Windows键+R打开...

locbytes
昨天
8
0
jquery 添加和删除节点

本文转载于:专业的前端网站➺jquery 添加和删除节点 // 增加一个三和一节点function addPanel() { // var newPanel = $('.my-panel').clone(true) var newPanel = $(".triple-panel-con......

前端老手
昨天
8
0
一、Django基础

一、web框架分类和wsgiref模块使用介绍 web框架的本质 socket服务端 与 浏览器的通信 socket服务端功能划分: 负责与浏览器收发消息(socket通信) --> wsgiref/uWsgi/gunicorn... 根据用户访问...

ZeroBit
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部