def handle(self, *args, **options): xvfb = Xvfb(width=1600, height=720) xvfb.start() browser = WebDriver() browser.get(settings.DOMAIN) sleep(1) browser.find_element_by_css_selector("#disclaimer button").click() sleep(0.7) browser.find_elements_by_css_selector(".officer .checkmark")[4].click() sleep(2) browser.find_element_by_css_selector( ".complaint-row .col-md-3").click() sleep(1) content = browser.get_screenshot_as_png() now = datetime.datetime.now().strftime("%Y-%m-%d %H-%M-%S") file_name = "{now}.png".format(now=now) file_path = os.path.join(settings.BASE_DIR, 'static', file_name) with open(file_path, "wb") as f: f.write(content) browser.quit() email = EmailMessage(subject='CPDB Homepage screenshot %s' % now, body='FYI', to=['*****@*****.**']) email.attach_file(file_path) email.send() xvfb.stop()
def save_screenshot_and_html(driver: WebDriver, locale: str, test_name: str) -> None: # Save a screenshot locale_screenshot_dir = _SCREENSHOTS_DIR / locale locale_screenshot_dir.mkdir(parents=True, exist_ok=True) img = Image.open(BytesIO(driver.get_screenshot_as_png())) cropped = autocrop_btm(img) cropped.save(str(locale_screenshot_dir / f"{test_name}.png")) # Save the HTML content locale_html_dir = _HTML_DIR / locale locale_html_dir.mkdir(parents=True, exist_ok=True) html = driver.page_source (locale_html_dir / f"{test_name}.html").write_text(html)