Python: Selenium Webdriver делает несколько скриншотов

Я пишу код, который должен делать снимки экрана с 3 разных точек останова [1280 px, 768px и 320px]. Но код, который у меня есть, делает 3 снимка экрана одного и того же экрана.

from datetime import datetime
from selenium import webdriver
from pyvirtualdisplay import Display
import time
import argparse
from selenium.webdriver.chrome.options import Options

now = datetime.now().strftime('%d-%m-%Y_%H-%M-%S')

class ScreenshotMaker(object):
    def __init__(self, url):
        self.url = url
        self.display = Display()
        self.display.start()
        self.driver = webdriver.Chrome('/usr/local/bin/chromedriver')
        self.driver.set_page_load_timeout(30)
        self.driver.get(url)
        self.driver.maximize_window()

    def make_screenshots(self):
        # Make Screenshot for 1280
        self.display = Display(visible=0, size=(1280, 800)).start()
        self.driver.get_screenshot_as_file('Breakpoint_1280_Screenshot_%s.png' %(now))
        print("Taking Screenshot for Breakpoint 1280")

        # Make Screenshot for 768
        self.display = Display(visible=0, size=(768, 800)).start()
        self.driver.get_screenshot_as_file('Breakpoint_768_Screenshot_%s.png' %(now))
        print("Taking Screenshot for Breakpoint 768")

        # Make Screenshot for 320
        self.display = Display(visible=0, size=(320, 800)).start()
        self.driver.get_screenshot_as_file('Breakpoint_320_Screenshot_%s.png' %(now))
        print("Taking Screenshot for Breakpoint 320")

def main():
    # url = ''
    sm = ScreenshotMaker('https://example.com')
    sm.make_screenshots()

if __name__ == "__main__":
    main()

Что мне нужно изменить, чтобы код делал 3 разных снимка экрана?

Спасибо за вашу помощь:)

0 ответов

Другие вопросы по тегам