Chụp ảnh màn hình toàn trang với Firefox trên dòng lệnh


224

Tôi đang chạy Firefox trên Xvfb trong VPS. Những gì tôi muốn làm là chụp ảnh màn hình toàn trang của trang.

Tôi có thể chuyển hướng Firefox đến trang cụ thể bằng cách sử dụng

firefox http://google.com

và chụp ảnh màn hình (bên trong X) bằng ImageMagick

import root -window output.jpg

Vấn đề là, hầu hết các trang cần cuộn và tôi không thể biết trước chiều cao.

Một cách khác là chọn một chiều cao rất lớn (như 4000px) và sau đó xử lý hình ảnh và loại bỏ phần vô dụng. Nhưng đó là xử lý không cần thiết.

Tôi đã tìm thấy nhiều tiện ích Firefox, nhưng tôi đang tìm một giải pháp có thể được lập trình bằng dòng Shell Command.

Chỉnh sửa: Tôi đã kết thúc việc viết phần mở rộng FireFox của riêng mình để làm điều này.


1
Tôi đã thấy một số công cụ cli webkit để chụp ảnh màn hình nhưng tôi không nhớ tên.
Rufo El Magufo

Câu trả lời:


480

Các Developer Toolbar GCLI và Shift+ F2phím tắt đã được gỡ bỏ trong phiên bản Firefox 60 . Để chụp ảnh màn hình trong 60 hoặc mới hơn:

  • nhấn Ctrl+ Shift+ Kđể mở bảng điều khiển dành cho nhà phát triển ( ⌥ Option+ ⌘ Command+ Ktrên macOS)
  • loại :screenshothoặc:screenshot --fullpage

Tìm hiểu thêm về ảnh chụp màn hình và các tính năng khác


Đối với phiên bản Firefox <60:

Nhấn Shift+ F2hoặc đi tới Công cụ> Nhà phát triển web> Thanh công cụ dành cho nhà phát triển để mở một dòng lệnh. Viết:

screenshot

và nhấn Enter để chụp ảnh màn hình.

Để trả lời đầy đủ câu hỏi, bạn thậm chí có thể lưu toàn bộ trang, không chỉ phần hiển thị của nó:

screenshot --fullpage

Và để sao chép ảnh chụp màn hình vào clipboard, sử dụng --clipboardtùy chọn:

screenshot --clipboard --fullpage

Firefox 18 thay đổi cách các đối số được truyền cho các lệnh, bạn phải thêm "-" trước chúng.

Bạn có thể tìm thấy một số tài liệu và danh sách đầy đủ các lệnh ở đây .

Tái bút Các ảnh chụp màn hình được lưu vào thư mục tải xuống theo mặc định.


4
Nếu bạn muốn chỉ sao chép ảnh chụp màn hình vào clipboard của mình trực tiếp, hãy sử dụng ảnh chụp màn hình --clipboard --fullpage
mbokil

2
Lệnh đó không hoạt động trong bảng điều khiển javascript, vậy có liên kết đến thông tin thêm về thanh công cụ này không? Nó có thể làm gì khác?
run rẩy

5
Chỉ cần FYI bạn cũng có thể chọn ghi chú DOM thông qua trình kiểm tra và sau đó right-click-> screenshot node. Điều này siêu hữu ích khi bạn muốn chụp màn hình một phần của trang.
Tom

5
screenshot --clipboard --fullpageẢnh chụp màn hình toàn trang vào clipboard - Ảnh chụp màn hình của một nút cụ thể (theo Id) -screenshot --clipboard --selector #elementId
Mohamel

3
Tôi đã phải sử dụng :screenshot --clipboard --fullpage(nhớ đến dấu hai chấm)
someonr

134

Cập nhật 2018-07-23

Như đã được chỉ ra trong các ý kiến, câu hỏi này là về việc lấy một ảnh chụp màn hình từ dòng lệnh . Xin lỗi, tôi chỉ đọc qua đó. Vì vậy, đây là câu trả lời chính xác:

Kể từ Firefox 57, bạn có thể tạo ảnh chụp màn hình ở chế độ không đầu như thế này:

firefox -screenshot https://developer.mozilla.com

Đọc thêm trong tài liệu .

Cập nhật 2017-06-15

Kể từ Firefox 55, có ảnh chụp màn hình Firefox như một sự thay thế linh hoạt hơn. Kể từ Firefox 57 Ảnh chụp màn hình cũng có thể chụp toàn bộ trang.

Câu trả lời gốc

Vì Firefox 32 cũng có một nút chụp màn hình toàn trang trong các công cụ dành cho nhà phát triển (F12). Nếu nó không được bật, hãy đi tới cài đặt công cụ dành cho nhà phát triển (nút bánh răng) và chọn "Chụp ảnh màn hình toàn trang" tại phần "Nút hộp công cụ khả dụng".

thanh công cụ phát triển nguồn: developer.mozilla.org

Theo mặc định, ảnh chụp màn hình được lưu trong thư mục tải xuống. Điều này hoạt động tương tự như screenshot --fullpagetrong thanh công cụ.


7
Đối với những người có Firebird mở trên F12, các công cụ dành cho nhà phát triển có sẵn với Ctrl + Shift + K hoặc Ctrl + Shift + I. Chỉ là ... trong trường hợp ... ai đó chưa bao giờ sử dụng chúng trước đây.
Kir Kanos

Những phím tắt đó không hoạt động trên Mac. Sử dụng Công cụ> Nhà phát triển web> Chuyển đổi Công cụ. Và, vâng, nút chụp màn hình được tắt theo mặc định. Nhấp vào biểu tượng Cài đặt để bật.
Snowcrash 7/03/2015

trên Mac, bạn có thể mở các công cụ dành cho nhà phát triển với cmd+ alt+i
achairapart

Firefox Ảnh chụp màn hình tải lên ảnh chụp màn hình được chụp lên máy chủ của Mozilla. Họ đã không làm cho điều này đủ đáng ghét để tôi thông báo trước. May mắn là hình ảnh trong trường hợp của tôi không quá nhạy cảm, mặc dù nó là nội bộ. Được cảnh báo.
Búa Bro.

1
Từ câu hỏi: "Tôi đã tìm thấy nhiều tiện ích Firefox, nhưng tôi đang tìm một giải pháp có thể được lập trình bằng dòng Shell Command."
Quentin

9

Tôi đã kết thúc việc mã hóa một giải pháp tùy chỉnh (tiện ích mở rộng Firefox) thực hiện điều này. Tôi nghĩ rằng vào thời điểm tôi phát triển nó, dòng lệnh được đề cập trong enreas không có ở đó.

Phần mở rộng Firefox là CmdShots . Đây là một lựa chọn tốt nếu bạn cần mức độ kiểm soát tốt hơn đối với quá trình chụp ảnh màn hình (hoặc bạn muốn thực hiện một số sửa đổi HTML / JS và xử lý hình ảnh).

Bạn có thể sử dụng nó và lạm dụng nó. Tôi quyết định giữ nó không có giấy phép, vì vậy bạn có thể tự do chơi với nó như bạn muốn.


20
Hmm, đó không phải là "không có giấy phép" nghĩa là gì: nó thực sự có nghĩa là bạn không cho phép bất kỳ mục đích sử dụng nào, điều này rõ ràng không đúng vì trong câu đó bạn cũng nói rằng sử dụng, lạm dụng và chơi với nó là ổn. muốn Có lẽ bạn muốn một cái gì đó như Muff ?
SamB

Đối với những điều "không có giấy phép", tôi thích điều này: wtfpl.net Nó nêu rõ những gì được phép mà không cần BS hợp pháp.
kap

@SamB Tôi ngẫu nhiên vấp phải bình luận của bạn. Vâng, tôi biết 3 năm sau. Vấn đề là nếu tôi viết Giấy phép, tôi đã phức tạp mọi thứ. Cách tiếp cận NOLICENSE chỉ đơn giản là thứ.
Omar Abid

3
Xin vui lòng, không sử dụng giấy phép tùy chỉnh. Tôi biết mọi người cố gắng tránh những điều vô nghĩa bằng cách viết giấy phép của riêng họ, nhưng cuối cùng họ lại làm điều ngược lại, gây đau đầu cho mọi người khi họ cố gắng tìm hiểu ý nghĩa của giấy phép tùy chỉnh. Xem choosealicense.com
Flimm

@SamB - mặc dù "không có giấy phép" rõ ràng không phải là "giấy phép chính thức", "The Unlicense" thực sự một giấy phép và dường như khá gần với những gì OP mô tả về ý định sử dụng mã của anh ấy. Xem: choosealicense.com/licenses/unlicense
Will Ediger

8

Tôi nghĩ những gì bạn đang tìm kiếm là một tiện ích cho phép bạn lưu một trang hoàn chỉnh được mở trong trình duyệt của bạn vào một tệp png. Hầu hết có lẽ bạn đang tìm kiếm một tiện ích như Commandlineprint2 .

Sau khi cài đặt tiện ích mở rộng, bạn chỉ cần gõ lệnh:

firefox -print http://google.com -printfile ~/foo.png

1

Firefox Ảnh chụp màn hình là một công cụ mới đi kèm với Firefox. Nó không phải là một công cụ dành cho nhà phát triển, nó nhắm đến người dùng cuối của trình duyệt.

Để chụp ảnh màn hình, nhấp vào menu hành động của trang trong thanh địa chỉ và nhấp vào "chụp ảnh màn hình". Nếu sau đó bạn nhấp vào "Lưu toàn bộ trang", nó sẽ lưu toàn bộ trang, cuộn cho bạn.


(nguồn: mozilla.net )


3
Từ câu hỏi: "Tôi đã tìm thấy nhiều tiện ích Firefox, nhưng tôi đang tìm một giải pháp có thể được lập trình bằng dòng Shell Command."
Quentin

-1

Bạn có thể sử dụng selen và trình duyệt web cho Firefox.

import selenium.webdriver
import selenium.common

options = selenium.webdriver.firefox.options.Options()
# options.headless = True
with selenium.webdriver.Firefox(options=options) as driver:
    driver.get('http://google.com')
    time.sleep(2)
    root=driver.find_element_by_tag_name('html')
    root.screenshot('whole page screenshot.png')
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.