gpt4 book ai didi

docker - 如何在 docker 容器内启动一个宽浏览器,用于 Protractor 测试

转载 作者:行者123 更新时间:2023-12-04 20:06:41 25 4
gpt4 key购买 nike

在 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 容器。
和一个用于角度网站的 npm 容器。

Protractor .conf.js:
....
onPrepare: function() {
browser.driver.manage().window().maximize();
//var width = 1224;
//var height = 800;
//browser.driver.manage().window().setSize(width, height);
}

我们如何获得宽浏览器?
(我们显然没有为我们的网站使用响应式设计)

最佳答案

将以下内容添加到您的 docker-compose.yml 文件中:

chrome:
image: selenium/node-chrome-debug
environment:
SCREEN_WIDTH: 1920
SCREEN_HEIGHT: 1080
ports:
- 5900
links:
- seleniumhub:hub

如果您使用的是调试节点,则大功告成。如果你不是,永远不要害怕!最大化不起作用,但 driver.manage().window().setSize(new Dimension(1920, 1080));将要。

关于docker - 如何在 docker 容器内启动一个宽浏览器,用于 Protractor 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30184736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com