Khi chụp ảnh chụp màn hình bằng Trình quản lý web Selenium trên cửa sổ bằng python, ảnh chụp màn hình được lưu trực tiếp vào đường dẫn của chương trình, có cách nào để lưu tệp .png vào một thư mục cụ thể không?Ảnh chụp màn hình Webdriver
Trả lời
Sử dụng driver.save_screenshot('/path/to/file')
hoặc driver.get_screenshot_as_file('/path/to/file')
:
import selenium.webdriver as webdriver
import contextlib
@contextlib.contextmanager
def quitting(thing):
yield thing
thing.quit()
with quitting(webdriver.Firefox()) as driver:
driver.implicitly_wait(10)
driver.get('http://www.google.com')
driver.get_screenshot_as_file('/tmp/google.png')
# driver.save_screenshot('/tmp/google.png')
Tôi hiểu bạn đang tìm kiếm một câu trả lời trong python, nhưng đây là cách người ta sẽ làm điều đó trong ruby ..
http://watirwebdriver.com/screenshots/
Nếu đó chỉ hoạt động bằng cách lưu trong thư mục hiện tại chỉ .. Trước tiên tôi sẽ gán hình ảnh cho một biến và sau đó lưu biến đó vào đĩa dưới dạng tệp PNG.
ví dụ:
image = b.screenshot.png
File.open("testfile.png", "w") do |file|
file.puts "#{image}"
end
nơi b là biến trình duyệt được sử dụng bởi webdriver. tôi có sự linh hoạt để cung cấp một đường dẫn tuyệt đối hoặc tương đối trong "File.open" để tôi có thể lưu hình ảnh ở bất cứ đâu.
Vâng, chúng ta có một cách để có được mở rộng ảnh chụp màn hình của .png sử dụng python webdriver
sử dụng dưới mã nếu bạn làm việc trong python webriver.it là rất đơn giản.
driver.save_screenshot('D\folder\filename.png')
Lấy cảm hứng từ chủ đề này (cùng một câu hỏi cho Java): Take a screenshot with Selenium WebDriver
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://www.google.com/')
browser.save_screenshot('screenie.png')
browser.quit()
Chắc chắn nó không phải là thực tế ngay bây giờ nhưng tôi phải đối mặt với vấn đề này cũng và cách của tôi: Hình như 'save_screenshot' có một số rắc rối khi tạo tệp với không gian trong cùng một tên khi tôi thêm ngẫu nhiên vào tên tệp để ghi đè thoát.
Ở đây tôi có phương pháp để làm sạch filename của tôi về khoảng trắng (How do I replace whitespaces with underscore and vice versa?):
def urlify(self, s):
# Remove all non-word characters (everything except numbers and letters)
s = re.sub(r"[^\w\s]", '', s)
# Replace all runs of whitespace with a single dash
s = re.sub(r"\s+", '-', s)
return s
sau đó
driver.save_screenshot('c:\\pytest_screenshots\\%s' % screen_name)
nơi
def datetime_now(prefix):
symbols = str(datetime.datetime.now())
return prefix + "-" + "".join(symbols)
screen_name = self.urlify(datetime_now('screen')) + '.png'
driver.save_screenshot("path to save \\screen.jpeg")
Bạn có thể sử dụng bên dưới chức năng cho quan hệ con đường như đường dẫn tuyệt đối không phải là một ý tưởng tốt để thêm vào trong kịch bản
nhập
import sys, os
Sử dụng mã như dưới đây:
ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
screenshotpath = os.path.join(os.path.sep, ROOT_DIR,'Screenshots'+ os.sep)
driver.get_screenshot_as_file(screenshotpath+"testPngFunction.png")
chắc chắn rằng bạn tạo thư mục chứa file py có mặt .
os.path.join
cũng ngăn bạn chạy tập lệnh của mình trong nhiều nền tảng như: UNIX và windows. Nó sẽ tạo ra phân cách đường dẫn theo hệ điều hành tại thời gian chạy. os.sep
tương tự như File.separtor
trong java
- 1. ảnh chụp màn hình watir-webdriver màu đen
- 2. Selenium 2 (webdriver): Chụp ảnh màn hình trả về một ảnh đen
- 3. Lớp phủ màn hình cho ảnh chụp màn hình
- 4. iOS Ảnh chụp màn hình một phần của màn hình
- 5. Có thể chụp ảnh màn hình trực tiếp bằng cách sử dụng WebDriver không?
- 6. Chụp màn hình vào một ảnh bitmap
- 7. beamer includegraphics với ảnh chụp màn hình
- 8. Chụp ảnh màn hình của Android OpenGL
- 9. iPad 3 ảnh chụp màn hình chậm
- 10. Trì hoãn ảnh chụp màn hình iOS
- 11. Chụp ảnh màn hình với C \ GTK
- 12. Ảnh chụp màn hình OpenGL Android
- 13. Ảnh chụp màn hình bị rò rỉ?
- 14. Chụp màn hình
- 15. html5 chụp màn hình
- 16. Chụp màn hình trong android
- 17. Chụp màn hình màn hình hiện tại của thiết bị
- 18. Cách chụp ảnh màn hình bằng HTML-Unit?
- 19. Ảnh chụp màn hình Circumvent cho iOS 4
- 20. Nhận ảnh chụp màn hình từ trang ASP.Net
- 21. Chụp ảnh chất lượng thấp của màn hình
- 22. Chụp ảnh màn hình nội dung cửa sổ cuộn
- 23. Vô hiệu hóa ảnh chụp màn hình trong android ics
- 24. Cách chụp ảnh màn hình bằng VBScript trong TestComplete?
- 25. Android chụp ảnh màn hình trên thiết bị gốc
- 26. Chụp ảnh màn hình ** nhanh chóng ** từ python
- 27. Chụp ảnh màn hình trong C++ trên OSX
- 28. Chụp ảnh màn hình trang web theo chương trình
- 29. Thư viện C# để chụp ảnh màn hình?
- 30. Chụp ảnh màn hình bằng Python - Nền tảng chéo