专栏名称: 分布式实验室
最专业的Docker文章,最权威的Docker新闻。关注容器生态圈的发展。
目录
相关文章推荐
python自留地  ·  天才用户取用户名为null,害我熬夜查到两点。。。 ·  2 小时前  
python自留地  ·  天才用户取用户名为null,害我熬夜查到两点。。。 ·  2 小时前  
Java知音  ·  SpringBoot 实现接口防刷的 5 ... ·  昨天  
Java知音  ·  SpringBoot 实现接口防刷的 5 ... ·  昨天  
51好读  ›  专栏  ›  分布式实验室

Docker环境下运行Python + Selenium + Chrome

分布式实验室  · 公众号  · 后端  · 2017-04-09 08:22

正文

请到「今天看啥」查看全文



基于Selenium Grid的方案适用于以下场景:


  1. 通过Selenium自动访问网页时,需要阻塞等待与用户的交互,例如需要输入短信验证码的场景,通过Selenium Grid的调度,可以最优的利用所有可访问的资源,提高系统的并发执行效率。


  2. 需要对网页的兼容性进行测试时,可以接入多种内核的WebDriver到Selenium Grid中,这样在进行网页的自动化测试时,也同时对浏览器的兼容性进行了测试。


  3. 访问只支持IE内核的网站时,例如一些开发比较早的政府网站等。


  4. 访问需要安装安全控件的网站,例如网银的登录等。


本次的需求对时效性要求不高,邮件的获取需要由定时器进行触发,如果使用Selenium Grid,可能会增加了整个系统的复杂程度,分布式系统中每引入一个中间件,就会增加系统的复杂性,系统的可用性就会随之降低。


基于以上分析,考虑采用selenium handless的模式,在Docker中运行Chrome的WebDriver,完成最终邮件的自动获取。

在确定方案之后,需要寻找合适的Docker镜像,最终找到了chromium-xvfb这个镜像文件,集成了Chromium和Xvfb,可以满足在Docker容器中通过Selenium来进行无界面的操作。


方案验证


1. 下载chromium-xvfb的镜像文件


[root@prod ~]# docker pull markadams/chromium-xvfb-py2

2. 交互模式运行


[root@prod ~]# docker run --rm -it markadams/chromium-xvfb-py2 bash






请到「今天看啥」查看全文