Skip to content

Commit 66ac404

Browse files
committed
Add new example test: "test_download_images.py"
1 parent 341ebe9 commit 66ac404

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

examples/test_download_images.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import os
2+
from seleniumbase import BaseCase
3+
4+
5+
class DownloadImages(BaseCase):
6+
def test_download_images_directly(self):
7+
self.open("seleniumbase.io/examples/ReadMe/")
8+
img_elements_with_src = self.find_elements("img[src]")
9+
unique_src_values = []
10+
for img in img_elements_with_src:
11+
src = img.get_attribute("src")
12+
if src not in unique_src_values:
13+
unique_src_values.append(src)
14+
print()
15+
for src in unique_src_values:
16+
if src.split(".")[-1] not in ["png", "jpg", "jpeg"]:
17+
continue
18+
self.download_file(src) # Goes to downloaded_files/
19+
filename = src.split("/")[-1]
20+
self.assert_downloaded_file(filename)
21+
folder = "downloaded_files"
22+
file_path = os.path.join(folder, filename)
23+
self._print(file_path)
24+
25+
def test_download_images_via_screenshot(self):
26+
self.open("seleniumbase.io/error_page/")
27+
img_elements_with_src = self.find_elements("img[src]")
28+
unique_src_values = []
29+
for img in img_elements_with_src:
30+
src = img.get_attribute("src")
31+
if src not in unique_src_values:
32+
unique_src_values.append(src)
33+
print()
34+
count = 0
35+
for src in unique_src_values:
36+
self.open(src)
37+
image = self.find_element("img")
38+
if src.startswith("data:") or ";base64" in src:
39+
# Special Cases: SVGs, etc. Convert to PNG.
40+
count += 1
41+
filename = "svg_image_%s.png" % count
42+
else:
43+
filename = src.split("/")[-1]
44+
folder = "downloaded_files"
45+
file_path = os.path.join(folder, filename)
46+
image.screenshot(file_path)
47+
self.assert_downloaded_file(filename)
48+
self._print(file_path)

0 commit comments

Comments
 (0)