技术标签: python
Docker Selenium能讓Selenium在Docker中運行,可加速建置時間及獨立出各瀏覽器的版本
,保持了一定的隔離性,是非常好的測試環境。
https://www.lfhacks.com/tech/selenium-docker
https://hub.docker.com/r/selenium/standalone-chrome/dockerfile
selenium/hub: Grid Hub,相當於一個空白的Seleniun Server,
selenium/node-chrome: Chrome節點,需加入Grid Hub才能使用。
selenium/node-firefox: Firefox節點,需加入Grid Hub才能使用。
selenium/node-chrome-debug: Chrome節點,同時包含VNC Server,需加入Grid Hub才能使用。
selenium/node-firefox-debug: Firefox節點,同時包含VNC Server,需加入Grid Hub才能使用
selenium/standalone-chrome: 包含Chrome的Seleniun Server,可直接調用。
selenium/standalone-firefox: 包含Chrome的Seleniun Server,可直接調用。
selenium/standalone-chrome-debug: 包含Chrome的Seleniun Server,同時包含VNC Server,可直接調用。
selenium/standalone-firefox-debug: 包含Chrome的Seleniun Server,同時包含VNC Server,可直接調用。
selenium 官方提供了docker compose方法,直接使用就可以輕鬆搭建了。
docker-compose.yaml
|
|
docker-compose up --build
在docker-compose.yaml
中我指定公開的是4448端口,打開頁面看到可以成功訪問,能調用的瀏覽器有Chrome及Firefox.
調用方法與本地搭建selenium server相同,以下以chrome為例。
|
|
如果成功調用,在slenium頁面也會看到一個chrome正在被使用。
|
|
|
|
|
|
結束調用,slenium頁面上的chrome已經變回彩色的。
Docker Selenium 還有一種 Debug Mode,主要提供了有畫面的selenium,能直接看到瀏覽器在做什麼,Debug Mode使用了VNC服務器並佔用了5900端口,但要注意的是每個端口只能運行一個節點(Chrome、Firefox等),如果希望包含兩個節點或更多,那麼就必須公開不同的端口,如5900:5900、5901:5900…
docker-compose up --build
|
|
這個頁面顯示了Selenium hub的狀態,如果想看到VNC的情況,需要進入Docker 容器才看的到。
推薦工具 免費VNC : ultravnc
下載並安裝完成後,連進Docker內的VNC Server
默認密碼 : secret
預設是有密碼的,若不希望輸入密碼可在容器變量中加入VNC_NO_PASSWORD: 1
。
看到這個畫面代表成功連進了VNC
|
|
docker selenium透過Docker建置的關係,構建非常方便快速,這邊主要介紹了兩種模式創建容器,一種是可以看見瀏覽器的,一種是默默執行的,測試運行速度也非常的快,感覺起來似乎比實體主機還要順上很多,但以長期的測試情況,就不知道會不會有其他問題了。
https://maliaotw.github.io/2018/06/08/Docker%20Selenium(1)%20%E6%90%AD%E5%BB%BA/
https://blog.csdn.net/weixin_39198406/article/details/85085505
文章浏览阅读5.3k次,点赞3次,收藏12次。1:首页需要了解支付宝跟微信的开发文档,这里就贴上文档网址,不做过多描述微信:https://pay.weixin.qq.com/wiki/doc/api/index.html支付宝:https://open.alipay.com/developmentDocument.htm2:业务流程 首先不管是支付宝还是微信,在对应不同的场景支付的时候都会有不同的接口,这里需要注意,..._在线电商平台 支付宝 微信支付 合利宝接口
文章浏览阅读2.3k次。今天在CentOS7中使用yum命令的时候提示Couldn’t open file /etc/pki/rpm-gpg/RPM-GPG-KEY-7。GPG在Linux上的应用主要是实现官方发布的包的签名机制。GPG分为公钥及私钥。公钥:顾名思意,即可共享的密钥,主要用于验证私钥加密的数据及签名要发送给私钥方的数据。私钥:由本地保留的密钥,用于签名本地数据及验证用公钥签名的数据。实现原理(以Red Hat签名为例):1>RH在发布其官方的RPM包时(如本地RHEL光盘及FTP空间包),会提供一_couldn't open file /etc/pki/rpm-gpg/rpm-gpg-key-7
文章浏览阅读276次。manifest.json plus里加上"statusbar" : { "immersed" : true, "background" : "#D74B28" },同时基础配置里是否应用全屏不进行勾选..._mui 后台显示通知栏
文章浏览阅读401次。 上一篇,我们介绍了如何使用UI Automator Viewer这个工具来获取安卓上app的页面元素的信息。除了UI Automator Viewer之外,其实Android SDK下还有一个工具支持来抓取元素的属性,这个工具叫Android Device Monitor,简称DDMS,也在tools文件夹下。1.进入SDK安装目录2.点击Monitor.bat点击后,默认页面如下图。3...._android中使用monitor抓布局
文章浏览阅读2.1k次,点赞2次,收藏5次。Table of ContentsA simple C thread pool implementationPossible enhancements原理代码threadpool.hthreadpool.c测试例:heavy.cshutdown.cthrdtest.cA simple C thread pool implementationCurre..._thread-pool-c github
文章浏览阅读120次。MCPD认证 Web开发者简称:MCPD: webdev全称:MCPD: Web DeveloperMCPD:webdev认证考试科目 (1门+2门MCTS考试) 认证考试 培训课程 参考资料 70–547: P..._asp.net and/or mcpd: web developer
文章浏览阅读1.1k次。【代码】uni-app 系统状态栏高度CSS变量--status-bar-height。_--status-bar-height
文章浏览阅读1k次。Spring在3.1版本,就提供了一条基于注解的缓存策略,实际使用起来还是很丝滑的,本文将针对几个常用的注解进行简单的介绍说明,有需要的小伙伴可以尝试一下@CacheConfig:常用于类级别的注解,用于统一配置类缓存的公共属性@Caching:可以在一个类或方法同时使用多个缓存相关注解,灵活配置缓存策略@Cacheable:用于标记一个类或方法,当被标记对象被访问,会先去缓存中查询相应的结果,如果存在则返回,不存在则指向方法@CacheEvict :用于从缓存中移除数据。_@cacheconfig
文章浏览阅读1.9w次,点赞2次,收藏14次。之前测试mail这个功能的时候,简单的作出了发送email的功能,但是仅仅发给一个人可以,发送多个联系人就会出错,发送失败!请与邮件管理员联系。 javax.mail.internet.AddressException: Illegal whitespace_javax.mai邮件群发
文章浏览阅读3.8k次。活动D和活动F只能在活动C结束后开始.活动A和活动B可以在活动C开始后的任何时间内开始,但是必须在项目结束前完成.活动E只能在活动D完成后开始.活动B是在活动C开始1天后才开始的.在活动B的过程中,发生了一件意外事件,导致活动B延期2天.为了确保项目按时完成,______.40.完成某信息系统集成项目中的一个最基本的工作单元A所需的时间,乐观的估计需8天,悲观的估计需38天,最可能的估计需20天,按照PERT方法进行估算,项目的工期应该为______,在26天以后完成的概率大致为______._某项目包含a、b、c、d、e、f、g七个活动,各活动的历时估算和活动间的逻辑关系如下
文章浏览阅读2.1k次,点赞2次,收藏2次。在Keepalived+ Nginx 高可用负载均衡架构中,keepalived 负责实现高可用。它是一个高性能的服务器高可用或者热备解决方案,Keepalived主要来防止服务器单点故障的发生问题,可以通过其与Nginx的配合实现Web服务器端的高可用。使用keepalived可以保证nginx的高可用,他能监控nginx的健康状态,当nginx出现宕机时自动主备切换。_nginx+keepalived实现负载均衡
文章浏览阅读344次,点赞3次,收藏4次。跟着大佬们的文章学习,这次再深入学习一下类加载器文章目录一、简介:二、类文件的编译过程三、类加载器引导类加载器(BootstrapClassLoader)扩展类加载器(ExtensionsClassLoader)应用类加载器/系统类加载器(AppClassLoader)自定义类加载器(UserDefineClassLoader)四、双亲委派机制五、双亲委派机制的好处六、CLassLoader类核心方法6.1:`loadClass(String)`——加载指定的Java类6.2:`findClass(Str_java classloader 加载类