2021-05-01 06:16:30 +08:00
|
|
|
import os
|
2021-04-11 01:25:56 +08:00
|
|
|
import pytest
|
2019-04-06 13:21:03 +08:00
|
|
|
from seleniumbase import BaseCase
|
|
|
|
|
|
|
|
|
2021-03-11 06:27:52 +08:00
|
|
|
class ImageTests(BaseCase):
|
2021-04-11 01:25:56 +08:00
|
|
|
@pytest.mark.run(order=1)
|
2019-04-06 13:21:03 +08:00
|
|
|
def test_pull_image_from_website(self):
|
2022-04-14 01:40:01 +08:00
|
|
|
"""Pull an image from a website and save it as a PNG file."""
|
2019-04-06 13:21:03 +08:00
|
|
|
self.open("https://xkcd.com/1117/")
|
|
|
|
selector = "#comic"
|
|
|
|
file_name = "comic.png"
|
|
|
|
folder = "images_exported"
|
|
|
|
self.save_element_as_image_file(selector, file_name, folder)
|
2021-05-01 06:16:30 +08:00
|
|
|
self.assert_true(os.path.exists("%s/%s" % (folder, file_name)))
|
|
|
|
print('\n"%s/%s" was saved!' % (folder, file_name))
|
2020-11-28 03:48:09 +08:00
|
|
|
|
2021-04-11 01:25:56 +08:00
|
|
|
@pytest.mark.run(order=2)
|
2020-11-28 03:48:09 +08:00
|
|
|
def test_add_text_overlay_to_image(self):
|
2022-04-14 01:40:01 +08:00
|
|
|
"""Add a text overlay to an image."""
|
2020-11-28 03:48:09 +08:00
|
|
|
self.open("https://xkcd.com/1117/")
|
|
|
|
selector = "#comic"
|
|
|
|
file_name = "image_overlay.png"
|
|
|
|
folder = "images_exported"
|
|
|
|
overlay_text = 'This is an XKCD comic!\nTitle: "My Sky"'
|
|
|
|
self.save_element_as_image_file(
|
2021-05-06 09:06:24 +08:00
|
|
|
selector, file_name, folder, overlay_text
|
|
|
|
)
|
2021-05-01 06:16:30 +08:00
|
|
|
self.assert_true(os.path.exists("%s/%s" % (folder, file_name)))
|
|
|
|
print('\n"%s/%s" was saved!' % (folder, file_name))
|
2020-11-28 03:48:09 +08:00
|
|
|
|
2021-04-11 01:25:56 +08:00
|
|
|
@pytest.mark.run(order=3)
|
2020-11-28 03:48:09 +08:00
|
|
|
def test_add_text_overlay_to_page_section(self):
|
2022-04-14 01:40:01 +08:00
|
|
|
"""Add a text overlay to a section of a page."""
|
2020-11-28 03:48:09 +08:00
|
|
|
self.open("https://xkcd.com/2200/")
|
|
|
|
selector = "#middleContainer"
|
|
|
|
file_name = "section_overlay.png"
|
|
|
|
folder = "images_exported"
|
|
|
|
overlay_text = (
|
2021-05-06 09:06:24 +08:00
|
|
|
"Welcome to %s\n"
|
|
|
|
"This is a comment added to the image.\n"
|
|
|
|
"Unreachable states come from logic errors."
|
|
|
|
% self.get_current_url()
|
|
|
|
)
|
2020-11-28 03:48:09 +08:00
|
|
|
self.save_element_as_image_file(
|
2021-05-06 09:06:24 +08:00
|
|
|
selector, file_name, folder, overlay_text
|
|
|
|
)
|
2021-05-01 06:16:30 +08:00
|
|
|
self.assert_true(os.path.exists("%s/%s" % (folder, file_name)))
|
|
|
|
print('\n"%s/%s" was saved!' % (folder, file_name))
|
2020-11-28 03:48:09 +08:00
|
|
|
|
2021-04-11 01:25:56 +08:00
|
|
|
@pytest.mark.run(order=4)
|
2020-11-28 03:48:09 +08:00
|
|
|
def test_add_text_overlay_to_full_page(self):
|
2022-04-14 01:40:01 +08:00
|
|
|
"""Add a text overlay to a full page."""
|
2020-11-28 03:48:09 +08:00
|
|
|
self.open("https://xkcd.com/1922/")
|
|
|
|
self.remove_element("#bottom")
|
|
|
|
selector = "body"
|
|
|
|
file_name = "page_overlay.png"
|
|
|
|
folder = "images_exported"
|
2021-05-06 09:06:24 +08:00
|
|
|
overlay_text = "A text overlay on %s" % self.get_current_url()
|
2020-11-28 03:48:09 +08:00
|
|
|
self.save_element_as_image_file(
|
2021-05-06 09:06:24 +08:00
|
|
|
selector, file_name, folder, overlay_text
|
|
|
|
)
|
2021-05-01 06:16:30 +08:00
|
|
|
self.assert_true(os.path.exists("%s/%s" % (folder, file_name)))
|
|
|
|
print('\n"%s/%s" was saved!' % (folder, file_name))
|