Skip to content

Commit 0ec7d10

Browse files
authored
Merge pull request #304 from seleniumbase/small-fixes
Small Fixes
2 parents 0eefbe0 + fd3a2f7 commit 0ec7d10

File tree

5 files changed

+61
-19
lines changed

5 files changed

+61
-19
lines changed

examples/raw_parameter_script.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
b.log_path = "latest_logs/"
3838
b.archive_logs = False
3939
b.disable_csp = False
40+
b.visual_baseline = False
4041
b.save_screenshot_after_test = False
4142
b.timeout_multiplier = None
4243
b.with_db_reporting = False

seleniumbase/config/proxy_list.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"""
2020

2121
PROXY_LIST = {
22-
"example1": "167.99.151.183:8080", # (Example) - set your own proxy here
22+
"example1": "159.122.164.163:8080", # (Example) - set your own proxy here
2323
"proxy1": None,
2424
"proxy2": None,
2525
"proxy3": None,

seleniumbase/core/log_helper.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,15 @@
77
from seleniumbase.config import settings
88

99

10-
def log_screenshot(test_logpath, driver):
10+
def log_screenshot(test_logpath, driver, screenshot=None):
1111
screenshot_name = settings.SCREENSHOT_NAME
1212
screenshot_path = "%s/%s" % (test_logpath, screenshot_name)
1313
try:
14-
element = driver.find_element_by_tag_name('body')
15-
element_png = element.screenshot_as_png
14+
if not screenshot:
15+
element = driver.find_element_by_tag_name('body')
16+
screenshot = element.screenshot_as_png
1617
with open(screenshot_path, "wb") as file:
17-
file.write(element_png)
18+
file.write(screenshot)
1819
except Exception:
1920
try:
2021
driver.get_screenshot_as_file(screenshot_path)

seleniumbase/fixtures/base_case.py

Lines changed: 53 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ def test_anything(self):
2626
import logging
2727
import math
2828
import os
29-
import pytest
3029
import re
3130
import sys
3231
import time
@@ -74,6 +73,7 @@ def __init__(self, *args, **kwargs):
7473
self.env = None # Add a shortened version of self.environment
7574
self.__last_url_of_delayed_assert = "data:,"
7675
self.__last_page_load_url = "data:,"
76+
self.__last_page_screenshot = None
7777
self.__delayed_assert_count = 0
7878
self.__delayed_assert_failures = []
7979
# Requires self._* instead of self.__* for external class use
@@ -3154,6 +3154,14 @@ def setUp(self, masterqa_mode=False):
31543154
disable_csp=self.disable_csp)
31553155
self._default_driver = self.driver
31563156

3157+
def __set_last_page_screenshot(self):
3158+
if not self.__last_page_screenshot:
3159+
try:
3160+
element = self.driver.find_element_by_tag_name('body')
3161+
self.__last_page_screenshot = element.screenshot_as_base64
3162+
except Exception:
3163+
pass
3164+
31573165
def __insert_test_result(self, state, err):
31583166
data_payload = TestcaseDataPayload()
31593167
data_payload.runtime = int(time.time() * 1000) - self.case_start_time
@@ -3176,13 +3184,21 @@ def __insert_test_result(self, state, err):
31763184

31773185
def __add_pytest_html_extra(self):
31783186
try:
3179-
pytest_html = pytest.config.pluginmanager.getplugin('html')
3180-
if self.with_selenium and pytest_html:
3181-
driver = self.driver
3182-
extra_url = pytest_html.extras.url(driver.current_url)
3183-
screenshot = driver.get_screenshot_as_base64()
3184-
extra_image = pytest_html.extras.image(screenshot,
3185-
name='Screenshot')
3187+
if self.with_selenium:
3188+
if not self.__last_page_screenshot:
3189+
self.__set_last_page_screenshot()
3190+
extra_url = {}
3191+
extra_url['name'] = 'URL'
3192+
extra_url['format'] = 'url'
3193+
extra_url['content'] = self.get_current_url()
3194+
extra_url['mime_type'] = None
3195+
extra_url['extension'] = None
3196+
extra_image = {}
3197+
extra_image['name'] = 'Screenshot'
3198+
extra_image['format'] = 'image'
3199+
extra_image['content'] = self.__last_page_screenshot
3200+
extra_image['mime_type'] = 'image/png'
3201+
extra_image['extension'] = 'png'
31863202
self._html_report_extra.append(extra_url)
31873203
self._html_report_extra.append(extra_image)
31883204
except Exception:
@@ -3273,7 +3289,12 @@ def tearDown(self):
32733289
os.makedirs(test_logpath)
32743290
except Exception:
32753291
pass # Only reachable during multi-threaded runs
3276-
log_helper.log_screenshot(test_logpath, self.driver)
3292+
if not self.__last_page_screenshot:
3293+
self.__set_last_page_screenshot()
3294+
log_helper.log_screenshot(
3295+
test_logpath,
3296+
self.driver,
3297+
self.__last_page_screenshot)
32773298
self.__add_pytest_html_extra()
32783299
if self.with_testing_base and has_exception:
32793300
test_logpath = self.log_path + "/" + test_id
@@ -3286,14 +3307,23 @@ def tearDown(self):
32863307
not self.with_basic_test_info) and (
32873308
not self.with_page_source)):
32883309
# Log everything if nothing specified (if testing_base)
3289-
log_helper.log_screenshot(test_logpath, self.driver)
3310+
if not self.__last_page_screenshot:
3311+
self.__set_last_page_screenshot()
3312+
log_helper.log_screenshot(
3313+
test_logpath,
3314+
self.driver,
3315+
self.__last_page_screenshot)
32903316
log_helper.log_test_failure_data(
32913317
self, test_logpath, self.driver, self.browser)
32923318
log_helper.log_page_source(test_logpath, self.driver)
32933319
else:
32943320
if self.with_screen_shots:
3321+
if not self.__last_page_screenshot:
3322+
self.__set_last_page_screenshot()
32953323
log_helper.log_screenshot(
3296-
test_logpath, self.driver)
3324+
test_logpath,
3325+
self.driver,
3326+
self.__last_page_screenshot)
32973327
if self.with_basic_test_info:
32983328
log_helper.log_test_failure_data(
32993329
self, test_logpath, self.driver, self.browser)
@@ -3354,7 +3384,12 @@ def tearDown(self):
33543384
log_helper.log_test_failure_data(
33553385
self, test_logpath, self.driver, self.browser)
33563386
if len(self._drivers_list) > 0:
3357-
log_helper.log_screenshot(test_logpath, self.driver)
3387+
if not self.__last_page_screenshot:
3388+
self.__set_last_page_screenshot()
3389+
log_helper.log_screenshot(
3390+
test_logpath,
3391+
self.driver,
3392+
self.__last_page_screenshot)
33583393
log_helper.log_page_source(test_logpath, self.driver)
33593394
elif self.save_screenshot_after_test:
33603395
test_id = "%s.%s.%s" % (self.__class__.__module__,
@@ -3366,6 +3401,11 @@ def tearDown(self):
33663401
os.makedirs(test_logpath)
33673402
except Exception:
33683403
pass # Only reachable during multi-threaded runs
3369-
log_helper.log_screenshot(test_logpath, self.driver)
3404+
if not self.__last_page_screenshot:
3405+
self.__set_last_page_screenshot()
3406+
log_helper.log_screenshot(
3407+
test_logpath,
3408+
self.driver,
3409+
self.__last_page_screenshot)
33703410
# Finally close all open browser windows
33713411
self.__quit_all_drivers()

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
setup(
1919
name='seleniumbase',
20-
version='1.22.1',
20+
version='1.22.2',
2121
description='Reliable Browser Automation & Testing Framework',
2222
long_description=long_description,
2323
long_description_content_type='text/markdown',

0 commit comments

Comments
 (0)