Skip to content

Commit d859281

Browse files
committed
Fix a Recorder bug caused by Python PATH whitespace
1 parent 7d9d5c5 commit d859281

File tree

2 files changed

+16
-9
lines changed

2 files changed

+16
-9
lines changed

seleniumbase/console_scripts/sb_mkrec.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,10 @@ def main():
9999
force_gui = False
100100
rec_behave = False
101101

102+
sys_executable = sys.executable
103+
if " " in sys_executable:
104+
sys_executable = "python"
105+
102106
if "linux" in sys.platform:
103107
use_colors = False
104108
c0, c1, c2, c5, c7, cr = set_colors(use_colors)
@@ -189,18 +193,18 @@ def main():
189193
print(success)
190194
run_cmd = None
191195
if not start_page:
192-
run_cmd = "%s -m pytest %s --rec -q -s" % (sys.executable, file_name)
196+
run_cmd = "%s -m pytest %s --rec -q -s" % (sys_executable, file_name)
193197
else:
194198
run_cmd = "%s -m pytest %s --rec -q -s --url=%s" % (
195-
sys.executable, file_name, start_page
199+
sys_executable, file_name, start_page
196200
)
197201
if '"' not in start_page:
198202
run_cmd = '%s -m pytest %s --rec -q -s --url="%s"' % (
199-
sys.executable, file_name, start_page
203+
sys_executable, file_name, start_page
200204
)
201205
elif "'" not in start_page:
202206
run_cmd = "%s -m pytest %s --rec -q -s --url='%s'" % (
203-
sys.executable, file_name, start_page
207+
sys_executable, file_name, start_page
204208
)
205209
if use_edge:
206210
run_cmd += " --edge"
@@ -217,7 +221,7 @@ def main():
217221
recorded_filename = file_name[:-3] + "_rec.py"
218222
recordings_dir = os.path.join(dir_name, "recordings")
219223
recorded_file = os.path.join(recordings_dir, recorded_filename)
220-
prefix = "%s -m " % sys.executable
224+
prefix = "%s -m " % sys_executable
221225
if " " not in recorded_file:
222226
os.system("%sseleniumbase print %s -n" % (prefix, recorded_file))
223227
elif '"' not in recorded_file:

seleniumbase/console_scripts/sb_recorder.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@
2424

2525
sb_config.rec_subprocess_p = None
2626
sb_config.rec_subprocess_used = False
27+
sys_executable = sys.executable
28+
if " " in sys_executable:
29+
sys_executable = "python"
2730
if sys.version_info <= (3, 7):
2831
current_version = ".".join(str(ver) for ver in sys.version_info[:3])
2932
raise Exception(
@@ -139,17 +142,17 @@ def do_recording(file_name, url, overwrite_enabled, use_chrome, window):
139142
add_on = " --rec-behave"
140143
command = (
141144
"%s -m seleniumbase mkrec %s --url=%s --gui"
142-
% (sys.executable, file_name, url)
145+
% (sys_executable, file_name, url)
143146
)
144147
if '"' not in url:
145148
command = (
146149
'%s -m seleniumbase mkrec %s --url="%s" --gui'
147-
% (sys.executable, file_name, url)
150+
% (sys_executable, file_name, url)
148151
)
149152
elif "'" not in url:
150153
command = (
151154
"%s -m seleniumbase mkrec %s --url='%s' --gui"
152-
% (sys.executable, file_name, url)
155+
% (sys_executable, file_name, url)
153156
)
154157
if not use_chrome:
155158
command += " --edge"
@@ -185,7 +188,7 @@ def do_playback(file_name, use_chrome, window, demo_mode=False):
185188
'File "%s" does not exist in the current directory!' % file_name,
186189
)
187190
return
188-
command = "%s -m pytest %s -q -s" % (sys.executable, file_name)
191+
command = "%s -m pytest %s -q -s" % (sys_executable, file_name)
189192
if shared_utils.is_linux():
190193
command += " --gui"
191194
if not use_chrome:

0 commit comments

Comments
 (0)