【发布时间】:2016-07-12 03:57:05
【问题描述】:
当在 docker 容器中运行端到端测试时,我们需要浏览器是宽的,以确保位于最右侧的元素(aButton)实际上是可见的并且像测试一样
expect(mainPage.aButton.isDisplayed()).toBeTruthy();
成功了。
在显示浏览器宽度时,我们总是得到一个接近 1050 的最大值:
browser.driver.manage().window().getSize().then(function(size) {
console.log('browser size', size);
});
显示:
browser size { height: 748,
width: 1050,
class: 'org.openqa.selenium.Dimension',
hCode: 436207616 }
当使用这两个 docker 镜像运行测试时,它们会失败,因为按钮不可见。在不在 Docker/Xvfb 内部的浏览器上运行测试时没有问题。
https://registry.hub.docker.com/u/caltha/protractor/
通过链接这样的本地版本(以及一些用于调试的日志文件夹......)修改了 Xvfb 配置的设置
mkdir -p /tmp/docker/protractor/supervisor
docker run --rm \
--name run_protractor \
-v /tmp/docker/protractor:/var/log \
-v /tmp/testproject:/project \
-v /tmp/xvfb.conf:/etc/supervisor/conf.d/xvfb.conf:ro \
caltha/protractor
Xvfb 设置文件 xvfb.conf:
[program:xvfb]
command = Xvfb :1 -screen 0 1920x1080x16
stdout_logfile = /var/log/supervisor/%(program_name)s-out.log
stderr_logfile = /var/log/supervisor/%(program_name)s-err.log
在这个 docker 镜像上运行相同的测试时,我们还会得到一个“小型”浏览器:
http://www.function.fr/docker-with-chrome-and-selenium-and-firefox/
更多信息: 我们在链接的 Docker 容器中启动所有“东西”,用于集成/端到端测试、数据库容器、用于服务器的 tomcat/rest/java 容器。 以及 Angular 网站的 npm 容器。
量角器.conf.js:
....
onPrepare: function() {
browser.driver.manage().window().maximize();
//var width = 1224;
//var height = 800;
//browser.driver.manage().window().setSize(width, height);
}
我们如何获得宽浏览器? (我们的网站显然没有使用响应式设计)
【问题讨论】:
标签: docker protractor xvfb