示例#1
0
    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()
示例#2
0
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)