我可以使用Nightwatch.js成功捕获整个网页,使用以下代码段:
module.exports = {
'open the page': function (browser) {
browser
.url('http://localhost')
.waitForElementVisible('body', 1000)
.resizeWindow(320, 480)
.saveScreenshot('./screenshot/mobile/login.png');
}
}
在我的场景中,我打开的页面包含大量内容,这些内容会滚动到页面底部。上面代码的捕获量是320x1200像素,我希望它们能够以320x480像素出现。
我想只捕获首屏以上的'屏幕的元素,而不是整个网页,这似乎是默认的。我怎样才能做到这一点?
答案 0 :(得分:0)
要求使用您描述的功能(但使用Python,Selenium和PhantomJS),我最终保存屏幕截图,然后使用单独的工具(一些ImageMagick包装器)裁剪保存的图像。在您的情况下,foreach ($employees as $program => $employee) {
$employee_string = $employee_string . $nc->q($employee[$program], NCL::$DATELN) . ', ';
foreach ($employee as $single) {
$empList = htmlspecialchars($empList . $single . '<br>');
}
$programs_and_employees = htmlspecialchars($programs_and_employees . '«' . $programs[$program] . '»' . ': <br>' . $empList . '<br>');
}
$contract->setValue('programs_and_employees', $programs_and_employees);
可能是解决方案(https://www.npmjs.com/package/png-crop)。例如,当您指定宽度为320px且高度为480px的窗口时,保存的屏幕截图可能具有320px的宽度和2500px的高度,具体取决于页面的“高”程度。然后,您可以继续将保存的图像裁剪为320像素宽和480像素高的图像,保留图像的上半部分。