Skip to content

Commit be77b5b

Browse files
committed
Refactor code that loads external JS resources into websites
1 parent 6ebfdbf commit be77b5b

File tree

1 file changed

+38
-43
lines changed

1 file changed

+38
-43
lines changed

seleniumbase/fixtures/js_utils.py

Lines changed: 38 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -155,12 +155,7 @@ def activate_jquery(driver):
155155
# jQuery is not currently defined. Let's proceed by defining it.
156156
pass
157157
jquery_js = constants.JQuery.MIN_JS
158-
activate_jquery_script = (
159-
"""var script = document.createElement('script');"""
160-
"""script.src = "%s";document.getElementsByTagName('head')[0]"""
161-
""".appendChild(script);""" % jquery_js
162-
)
163-
driver.execute_script(activate_jquery_script)
158+
add_js_link(driver, jquery_js)
164159
for x in range(int(settings.MINI_TIMEOUT * 10.0)):
165160
# jQuery needs a small amount of time to activate.
166161
try:
@@ -169,7 +164,7 @@ def activate_jquery(driver):
169164
except Exception:
170165
time.sleep(0.1)
171166
try:
172-
driver.execute_script(activate_jquery_script)
167+
add_js_link(driver, jquery_js)
173168
time.sleep(0.1)
174169
driver.execute_script("jQuery('head');")
175170
except Exception:
@@ -366,13 +361,13 @@ def highlight_with_jquery(driver, selector, loops, o_bs):
366361

367362
def add_css_link(driver, css_link):
368363
script_to_add_css = """function injectCSS(css) {
369-
var head = document.getElementsByTagName("head")[0];
370-
var link = document.createElement("link");
371-
link.rel = "stylesheet";
372-
link.type = "text/css";
373-
link.href = css;
374-
link.crossorigin = "anonymous";
375-
head.appendChild(link);
364+
var head_tag=document.getElementsByTagName("head")[0];
365+
var link_tag=document.createElement("link");
366+
link_tag.rel="stylesheet";
367+
link_tag.type="text/css";
368+
link_tag.href=css;
369+
link_tag.crossorigin="anonymous";
370+
head_tag.appendChild(link_tag);
376371
}
377372
injectCSS("%s");"""
378373
css_link = escape_quotes_if_needed(css_link)
@@ -381,14 +376,14 @@ def add_css_link(driver, css_link):
381376

382377
def add_js_link(driver, js_link):
383378
script_to_add_js = """function injectJS(link) {
384-
var body = document.getElementsByTagName("body")[0];
385-
var script = document.createElement("script");
386-
script.src = link;
387-
script.defer;
388-
script.type="text/javascript";
389-
script.crossorigin = "anonymous";
390-
script.onload = function() { null };
391-
body.appendChild(script);
379+
var body_tag=document.getElementsByTagName("body")[0];
380+
var script_tag=document.createElement("script");
381+
script_tag.src=link;
382+
script_tag.type="text/javascript";
383+
script_tag.crossorigin="anonymous";
384+
script_tag.defer;
385+
script_tag.onload=function() { null };
386+
body_tag.appendChild(script_tag);
392387
}
393388
injectJS("%s");"""
394389
js_link = escape_quotes_if_needed(js_link)
@@ -397,11 +392,11 @@ def add_js_link(driver, js_link):
397392

398393
def add_css_style(driver, css_style):
399394
add_css_style_script = """function injectStyle(css) {
400-
var head = document.getElementsByTagName("head")[0];
401-
var style = document.createElement("style");
402-
style.type = "text/css";
403-
style.appendChild(document.createTextNode(css));
404-
head.appendChild(style);
395+
var head_tag=document.getElementsByTagName("head")[0];
396+
var style_tag=document.createElement("style");
397+
style_tag.type="text/css";
398+
style_tag.appendChild(document.createTextNode(css));
399+
head_tag.appendChild(style_tag);
405400
}
406401
injectStyle("%s");"""
407402
css_style = css_style.replace("\n", "")
@@ -414,12 +409,12 @@ def add_js_code_from_link(driver, js_link):
414409
js_link = "http:" + js_link
415410
js_code = requests.get(js_link).text
416411
add_js_code_script = (
417-
"""var body = document.getElementsByTagName('body').item(0);"""
418-
"""var script = document.createElement("script");"""
419-
"""script.type = "text/javascript";"""
420-
"""script.onload = function() { null };"""
421-
"""script.appendChild(document.createTextNode("%s"));"""
422-
"""body.appendChild(script);"""
412+
"""var body_tag=document.getElementsByTagName('body').item(0);"""
413+
"""var script_tag=document.createElement("script");"""
414+
"""script_tag.type="text/javascript";"""
415+
"""script_tag.onload=function() { null };"""
416+
"""script_tag.appendChild(document.createTextNode("%s"));"""
417+
"""body_tag.appendChild(script_tag);"""
423418
)
424419
js_code = js_code.replace("\n", " ")
425420
js_code = escape_quotes_if_needed(js_code)
@@ -428,12 +423,12 @@ def add_js_code_from_link(driver, js_link):
428423

429424
def add_js_code(driver, js_code):
430425
add_js_code_script = (
431-
"""var body = document.getElementsByTagName('body').item(0);"""
432-
"""var script = document.createElement("script");"""
433-
"""script.type = "text/javascript";"""
434-
"""script.onload = function() { null };"""
435-
"""script.appendChild(document.createTextNode("%s"));"""
436-
"""body.appendChild(script);"""
426+
"""var body_tag=document.getElementsByTagName('body').item(0);"""
427+
"""var script_tag=document.createElement("script");"""
428+
"""script_tag.type="text/javascript";"""
429+
"""script_tag.onload=function() { null };"""
430+
"""script_tag.appendChild(document.createTextNode("%s"));"""
431+
"""body_tag.appendChild(script_tag);"""
437432
)
438433
js_code = js_code.replace("\n", " ")
439434
js_code = escape_quotes_if_needed(js_code)
@@ -449,10 +444,10 @@ def add_meta_tag(driver, http_equiv=None, content=None):
449444
"script-src: 'self' 'unsafe-inline' 'unsafe-eval'"
450445
)
451446
script_to_add_meta = """function injectMeta() {
452-
var meta = document.createElement('meta');
453-
meta.httpEquiv = "%s";
454-
meta.content = "%s";
455-
document.getElementsByTagName('head')[0].appendChild(meta);
447+
var meta_tag=document.createElement('meta');
448+
meta_tag.httpEquiv="%s";
449+
meta_tag.content="%s";
450+
document.getElementsByTagName('head')[0].appendChild(meta_tag);
456451
}
457452
injectMeta();""" % (
458453
http_equiv,

0 commit comments

Comments
 (0)