Skip to content

Commit 539d412

Browse files
authored
Merge pull request #3872 from seleniumbase/add-method-and-update-selenium
Add method and update selenium
2 parents 46b7397 + 5079d60 commit 539d412

File tree

8 files changed

+54
-3
lines changed

8 files changed

+54
-3
lines changed

help_docs/method_summary.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,7 @@ self.save_screenshot_to_logs(name=None, selector=None, by="css selector")
250250
self.save_data_to_logs(data, file_name=None)
251251
self.append_data_to_logs(data, file_name=None)
252252
self.save_page_source(name, folder=None)
253+
self.save_page_source_to_logs(name=None)
253254
self.save_cookies(name="cookies.txt")
254255
self.load_cookies(name="cookies.txt", expiry=False)
255256
self.delete_all_cookies()

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ wsproto==1.2.0
4646
websocket-client==1.8.0
4747
selenium==4.27.1;python_version<"3.9"
4848
selenium==4.32.0;python_version>="3.9" and python_version<"3.10"
49-
selenium==4.34.1;python_version>="3.10"
49+
selenium==4.34.2;python_version>="3.10"
5050
cssselect==1.2.0;python_version<"3.9"
5151
cssselect==1.3.0;python_version>="3.9"
5252
sortedcontainers==2.4.0

sbase/steps.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1191,6 +1191,15 @@ def set_attributes(context, selector, attribute, value):
11911191
sb.set_attributes(selector, attribute, value)
11921192

11931193

1194+
@step("Save page source to logs")
1195+
@step("Save the page source to the logs")
1196+
@step("User saves page source to logs")
1197+
@step("User saves the page source to the logs")
1198+
def save_page_source_to_logs(context):
1199+
sb = context.sb
1200+
sb.save_page_source_to_logs()
1201+
1202+
11941203
@step("Activate CDP Mode")
11951204
@step("User activates CDP Mode")
11961205
def activate_cdp_mode(context):

seleniumbase/__version__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
# seleniumbase package
2-
__version__ = "4.40.1"
2+
__version__ = "4.40.2"

seleniumbase/behave/behave_helper.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -522,6 +522,8 @@ def generate_gherkin(srt_actions):
522522
)
523523
elif action[0] == "ss_tl":
524524
sb_actions.append("Save screenshot to logs")
525+
elif action[0] == "spstl":
526+
sb_actions.append("Save page source to logs")
525527
elif action[0] == "sh_fc":
526528
sb_actions.append("Show file choosers")
527529
elif action[0] == "pr_da":

seleniumbase/core/recorder_helper.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -556,6 +556,9 @@ def generate_sbase_code(srt_actions):
556556
elif action[0] == "ss_tl":
557557
method = "save_screenshot_to_logs"
558558
sb_actions.append("self.%s()" % method)
559+
elif action[0] == "spstl":
560+
method = "save_page_source_to_logs"
561+
sb_actions.append("self.%s()" % method)
559562
elif action[0] == "sh_fc":
560563
method = "show_file_choosers"
561564
sb_actions.append("self.%s()" % method)

seleniumbase/fixtures/base_case.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ def __initialize_variables(self):
132132
self.__called_teardown = False
133133
self.__start_time_ms = int(time.time() * 1000.0)
134134
self.__requests_timeout = None
135+
self.__page_source_count = 0
135136
self.__screenshot_count = 0
136137
self.__logs_data_count = 0
137138
self.__last_data_file = None
@@ -4512,6 +4513,40 @@ def save_screenshot_to_logs(
45124513
sb_config._has_logs = True
45134514
return page_actions.save_screenshot(self.driver, name, test_logpath)
45144515

4516+
def save_page_source_to_logs(self, name=None):
4517+
"""Saves the page HTML to the "latest_logs/" folder.
4518+
Naming is automatic:
4519+
If NO NAME provided: "_1_source.html", "_2_source.html", etc.
4520+
If NAME IS provided, then: "_1_name.html", "_2_name.html", etc.
4521+
(The last_page / failure page_source is always "page_source.html")"""
4522+
if not self.__is_cdp_swap_needed():
4523+
self.wait_for_ready_state_complete()
4524+
test_logpath = os.path.join(self.log_path, self.__get_test_id())
4525+
self.__create_log_path_as_needed(test_logpath)
4526+
if name:
4527+
name = str(name)
4528+
self.__page_source_count += 1
4529+
if not name or len(name) == 0:
4530+
name = "_%s_source.html" % self.__page_source_count
4531+
else:
4532+
pre_name = "_%s_" % self.__page_source_count
4533+
if len(name) >= 4 and name[-4:].lower() == ".html":
4534+
name = name[:-4]
4535+
if len(name) == 0:
4536+
name = "source"
4537+
name = "%s%s.html" % (pre_name, name)
4538+
if self.recorder_mode:
4539+
url = self.get_current_url()
4540+
if url and len(url) > 0:
4541+
if ("http:") in url or ("https:") in url or ("file:") in url:
4542+
if self.get_session_storage_item("pause_recorder") == "no":
4543+
time_stamp = self.execute_script("return Date.now();")
4544+
origin = self.get_origin()
4545+
action = ["spstl", "", origin, time_stamp]
4546+
self.__extra_actions.append(action)
4547+
sb_config._has_logs = True
4548+
return page_actions.save_page_source(self.driver, name, test_logpath)
4549+
45154550
def save_data_to_logs(self, data, file_name=None):
45164551
"""Saves data to the "latest_logs/" data folder of the current test.
45174552
If no file_name, file_name becomes: "data_1.txt", "data_2.txt", etc.
@@ -5470,6 +5505,7 @@ def __process_recorded_actions(self):
54705505
ext_actions.append("s_scr")
54715506
ext_actions.append("ss_tf")
54725507
ext_actions.append("ss_tl")
5508+
ext_actions.append("spstl")
54735509
ext_actions.append("da_el")
54745510
ext_actions.append("da_ep")
54755511
ext_actions.append("da_te")

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@
194194
'websocket-client==1.8.0',
195195
'selenium==4.27.1;python_version<"3.9"',
196196
'selenium==4.32.0;python_version>="3.9" and python_version<"3.10"',
197-
'selenium==4.34.1;python_version>="3.10"',
197+
'selenium==4.34.2;python_version>="3.10"',
198198
'cssselect==1.2.0;python_version<"3.9"',
199199
'cssselect==1.3.0;python_version>="3.9"',
200200
"sortedcontainers==2.4.0",

0 commit comments

Comments
 (0)