调整大小 window 与 Nightwatch 更小
Resized window with Nightwatch is smaller
情况: 我们需要 运行 在 Nightwatch 中针对不同的屏幕尺寸(台式机、平板电脑、智能手机布局等)进行测试,因此我们需要调整浏览器的大小 window 到某些维度。比方说,平板电脑断点是 1024x768,所以我们将 destop 的 window 宽度和高度设置为 1025x768,但是当测试是 运行ning 时它失败了,因为布局仍然处于平板电脑模式(并且屏幕截图显示实际内容区域的大小为 1006x636)。
经过一些研究 (question1 , question2, question3),结果发现调整大小是将整个 window 大小设置为 1024x768,而不考虑浏览器的边框和滚动条以及其他此类元素,因此实际内容区域仍然小得多。每个浏览器和 OS 确实不同,加上 Windows 和 Linux 你基本上可以定义自己的 window 样式,这会再次添加不同的尺寸,所以我们无法计算它.
问题: 有什么方法可以使用 Nightwach/javascript 将 window 内容区域设置为特定大小?
根据Selenium wire protocol,您只能调整一个window。但是,如果您将所需尺寸与实际获得的尺寸进行比较,则可以再次调整尺寸以适合。示例:
var target = { width: 600, height: 400 };
browser
.resizeWindow(target.width, target.height)
.getElementSize('body', function(result) {
console.log("My content is ", result.value.width, " by ", result.value.height);
browser
.resizeWindow(target.width + (target.width - result.value.width),
target.height + (target.height - result.value.height))
.getElementSize('body', function(result) {
console.log("Now my content is ", result.value.width, " by ", result.value.height);
})
})
运行 我得到:
My content is 584 by 270
Now my content is 600 by 400
在浏览器中运行 Javascript 片段以确定 window 填充(不同的框架,也应该与 NW 一起使用。)
情况: 我们需要 运行 在 Nightwatch 中针对不同的屏幕尺寸(台式机、平板电脑、智能手机布局等)进行测试,因此我们需要调整浏览器的大小 window 到某些维度。比方说,平板电脑断点是 1024x768,所以我们将 destop 的 window 宽度和高度设置为 1025x768,但是当测试是 运行ning 时它失败了,因为布局仍然处于平板电脑模式(并且屏幕截图显示实际内容区域的大小为 1006x636)。
经过一些研究 (question1 , question2, question3),结果发现调整大小是将整个 window 大小设置为 1024x768,而不考虑浏览器的边框和滚动条以及其他此类元素,因此实际内容区域仍然小得多。每个浏览器和 OS 确实不同,加上 Windows 和 Linux 你基本上可以定义自己的 window 样式,这会再次添加不同的尺寸,所以我们无法计算它.
问题: 有什么方法可以使用 Nightwach/javascript 将 window 内容区域设置为特定大小?
根据Selenium wire protocol,您只能调整一个window。但是,如果您将所需尺寸与实际获得的尺寸进行比较,则可以再次调整尺寸以适合。示例:
var target = { width: 600, height: 400 };
browser
.resizeWindow(target.width, target.height)
.getElementSize('body', function(result) {
console.log("My content is ", result.value.width, " by ", result.value.height);
browser
.resizeWindow(target.width + (target.width - result.value.width),
target.height + (target.height - result.value.height))
.getElementSize('body', function(result) {
console.log("Now my content is ", result.value.width, " by ", result.value.height);
})
})
运行 我得到:
My content is 584 by 270
Now my content is 600 by 400