Skip to content

Commit 2328eaa

Browse files
committed
Update examples and docs
1 parent 043e4c7 commit 2328eaa

File tree

7 files changed

+93
-59
lines changed

7 files changed

+93
-59
lines changed

examples/ReadMe.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,8 @@ Run an example test using a nosetest configuration file:
153153
nosetests my_first_test.py --config=example_config.cfg
154154
```
155155

156+
--------
157+
156158
For more advanced run commands, such as using a proxy server, see [../help_docs/customizing_test_runs.md](https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/customizing_test_runs.md)
157159

158160
--------

examples/raw_parameter_script.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@
8383
sb.settings_file = None
8484
sb.user_data_dir = None
8585
sb.chromium_arg = None
86+
sb.firefox_arg = None
87+
sb.firefox_pref = None
8688
sb.proxy_string = None
8789
sb.swiftshader = False
8890
sb.ad_block_on = False

examples/test_shadow_dom.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
This uses the "::shadow" selector for piercing shadow-root elements.
55
Here's the URL that contains Shadow DOM: chrome://downloads/ """
66

7-
87
from seleniumbase import BaseCase
98

109

help_docs/customizing_test_runs.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,8 @@ SeleniumBase provides additional ``pytest`` command-line options for tests:
114114
--mobile # (Use the mobile device emulator while running tests.)
115115
--metrics=STRING # (Set mobile metrics: "CSSWidth,CSSHeight,PixelRatio".)
116116
--chromium-arg=ARG # (Add a Chromium arg for Chrome/Edge, comma-separated.)
117+
--firefox-arg=ARG # (Add a Firefox arg for Firefox, comma-separated.)
118+
--firefox-pref=SET # (Set a Firefox preference:value set, comma-separated.)
117119
--extension-zip=ZIP # (Load a Chrome Extension .zip|.crx, comma-separated.)
118120
--extension-dir=DIR # (Load a Chrome Extension directory, comma-separated.)
119121
--headless # (Run tests headlessly. Default mode on Linux OS.)

help_docs/method_summary.md

Lines changed: 81 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,9 @@ self.click_partial_link(partial_link_text, timeout=None)
9090

9191
self.get_text(selector, by=By.CSS_SELECTOR, timeout=None)
9292

93-
self.get_attribute(selector, attribute, by=By.CSS_SELECTOR, timeout=None, hard_fail=True)
93+
self.get_attribute(
94+
selector, attribute, by=By.CSS_SELECTOR,
95+
timeout=None, hard_fail=True)
9496

9597
self.set_attribute(selector, attribute, value, by=By.CSS_SELECTOR, timeout=None)
9698

@@ -130,31 +132,37 @@ self.switch_to_frame_of_element(selector, by=By.CSS_SELECTOR)
130132

131133
self.hover_on_element(selector, by=By.CSS_SELECTOR)
132134

133-
self.hover_and_click(hover_selector, click_selector,
134-
hover_by=By.CSS_SELECTOR, click_by=By.CSS_SELECTOR,
135-
timeout=None)
135+
self.hover_and_click(
136+
hover_selector, click_selector,
137+
hover_by=By.CSS_SELECTOR, click_by=By.CSS_SELECTOR,
138+
timeout=None)
136139

137-
self.hover_and_double_click(hover_selector, click_selector,
138-
hover_by=By.CSS_SELECTOR, click_by=By.CSS_SELECTOR,
139-
timeout=None)
140+
self.hover_and_double_click(
141+
hover_selector, click_selector,
142+
hover_by=By.CSS_SELECTOR, click_by=By.CSS_SELECTOR,
143+
timeout=None)
140144

141145
self.drag_and_drop(drag_selector, drop_selector,
142146
drag_by=By.CSS_SELECTOR, drop_by=By.CSS_SELECTOR,
143147
timeout=None)
144148

145-
self.drag_and_drop_with_offset(selector, x, y, by=By.CSS_SELECTOR, timeout=None)
149+
self.drag_and_drop_with_offset(
150+
selector, x, y, by=By.CSS_SELECTOR, timeout=None)
146151

147-
self.select_option_by_text(dropdown_selector, option,
148-
dropdown_by=By.CSS_SELECTOR,
149-
timeout=None)
152+
self.select_option_by_text(
153+
dropdown_selector, option,
154+
dropdown_by=By.CSS_SELECTOR,
155+
timeout=None)
150156

151-
self.select_option_by_index(dropdown_selector, option,
152-
dropdown_by=By.CSS_SELECTOR,
153-
timeout=None)
157+
self.select_option_by_index(
158+
dropdown_selector, option,
159+
dropdown_by=By.CSS_SELECTOR,
160+
timeout=None)
154161

155-
self.select_option_by_value(dropdown_selector, option,
156-
dropdown_by=By.CSS_SELECTOR,
157-
timeout=None)
162+
self.select_option_by_value(
163+
dropdown_selector, option,
164+
dropdown_by=By.CSS_SELECTOR,
165+
timeout=None)
158166

159167
self.load_html_string(html_string, new_page=True)
160168

@@ -188,16 +196,17 @@ self.switch_to_default_window()
188196

189197
self.switch_to_newest_window()
190198

191-
self.get_new_driver(browser=None, headless=None, locale_code=None,
192-
servername=None, port=None, proxy=None, agent=None,
193-
switch_to=True, cap_file=None, cap_string=None,
194-
disable_csp=None, enable_ws=None, enable_sync=None,
195-
use_auto_ext=None, no_sandbox=None, disable_gpu=None,
196-
incognito=None, guest_mode=None,
197-
devtools=None, remote_debug=None,
198-
swiftshader=None, block_images=None, user_data_dir=None,
199-
extension_zip=None, extension_dir=None, is_mobile=False,
200-
d_width=None, d_height=None, d_p_r=None)
199+
self.get_new_driver(
200+
browser=None, headless=None, locale_code=None,
201+
servername=None, port=None, proxy=None, agent=None,
202+
switch_to=True, cap_file=None, cap_string=None,
203+
disable_csp=None, enable_ws=None, enable_sync=None,
204+
use_auto_ext=None, no_sandbox=None, disable_gpu=None,
205+
incognito=None, guest_mode=None,
206+
devtools=None, remote_debug=None,
207+
swiftshader=None, block_images=None, user_data_dir=None,
208+
extension_zip=None, extension_dir=None, is_mobile=None,
209+
d_width=None, d_height=None, d_p_r=None)
201210

202211
self.switch_to_driver(driver)
203212

@@ -236,7 +245,8 @@ self.bring_to_front(selector, by=By.CSS_SELECTOR)
236245

237246
self.highlight_click(selector, by=By.CSS_SELECTOR, loops=3, scroll=True)
238247

239-
self.highlight_update_text(selector, text, by=By.CSS_SELECTOR, loops=3, scroll=True)
248+
self.highlight_update_text(
249+
selector, text, by=By.CSS_SELECTOR, loops=3, scroll=True)
240250

241251
self.highlight(selector, by=By.CSS_SELECTOR, loops=4, scroll=True)
242252

@@ -296,17 +306,20 @@ self.assert_no_404_errors(multithreaded=True)
296306

297307
self.print_unique_links_with_status_codes()
298308

299-
self.get_pdf_text(pdf, page=None, maxpages=None, password=None,
300-
codec='utf-8', wrap=False, nav=False, override=False)
309+
self.get_pdf_text(
310+
pdf, page=None, maxpages=None, password=None,
311+
codec='utf-8', wrap=False, nav=False, override=False)
301312

302-
self.assert_pdf_text(pdf, text, page=None, maxpages=None, password=None,
303-
codec='utf-8', wrap=True, nav=False, override=False)
313+
self.assert_pdf_text(
314+
pdf, text, page=None, maxpages=None, password=None,
315+
codec='utf-8', wrap=True, nav=False, override=False)
304316

305317
self.create_folder(folder)
306318

307319
self.choose_file(selector, file_path, by=By.CSS_SELECTOR, timeout=None)
308320

309-
self.save_element_as_image_file(selector, file_name, folder=None, overlay_text="")
321+
self.save_element_as_image_file(
322+
selector, file_name, folder=None, overlay_text="")
310323

311324
self.download_file(file_url, destination_folder=None)
312325

@@ -337,11 +350,13 @@ self.assert_not_equal(first, second, msg=None)
337350

338351
self.assert_raises(*args, **kwargs)
339352

340-
self.wait_for_attribute(selector, attribute, value=None,
341-
by=By.CSS_SELECTOR, timeout=None)
353+
self.wait_for_attribute(
354+
selector, attribute, value=None,
355+
by=By.CSS_SELECTOR, timeout=None)
342356

343-
self.assert_attribute(selector, attribute, value=None,
344-
by=By.CSS_SELECTOR, timeout=None)
357+
self.assert_attribute(
358+
selector, attribute, value=None,
359+
by=By.CSS_SELECTOR, timeout=None)
345360

346361
self.assert_title(title)
347362

@@ -425,34 +440,42 @@ self.add_meta_tag(http_equiv=None, content=None)
425440

426441
self.create_presentation(name=None, theme="default", transition="default")
427442

428-
self.add_slide(content=None, image=None, code=None, iframe=None,
429-
content2=None, notes=None, transition=None, name=None)
443+
self.add_slide(
444+
content=None, image=None, code=None, iframe=None,
445+
content2=None, notes=None, transition=None, name=None)
430446

431-
self.save_presentation(name=None, filename=None, show_notes=False, interval=0)
447+
self.save_presentation(
448+
name=None, filename=None, show_notes=False, interval=0)
432449

433-
self.begin_presentation(name=None, filename=None, show_notes=False, interval=0)
450+
self.begin_presentation(
451+
name=None, filename=None, show_notes=False, interval=0)
434452

435453
############
436454

437-
self.create_pie_chart(chart_name=None, title=None, subtitle=None,
438-
data_name=None, unit=None, libs=True,
439-
labels=True, legend=True)
455+
self.create_pie_chart(
456+
chart_name=None, title=None, subtitle=None,
457+
data_name=None, unit=None, libs=True,
458+
labels=True, legend=True)
440459

441-
self.create_bar_chart(chart_name=None, title=None, subtitle=None,
442-
data_name=None, unit=None, libs=True,
443-
labels=True, legend=True)
460+
self.create_bar_chart(
461+
chart_name=None, title=None, subtitle=None,
462+
data_name=None, unit=None, libs=True,
463+
labels=True, legend=True)
444464

445-
self.create_column_chart(chart_name=None, title=None, subtitle=None,
446-
data_name=None, unit=None, libs=True,
447-
labels=True, legend=True)
465+
self.create_column_chart(
466+
chart_name=None, title=None, subtitle=None,
467+
data_name=None, unit=None, libs=True,
468+
labels=True, legend=True)
448469

449-
self.create_line_chart(chart_name=None, title=None, subtitle=None,
450-
data_name=None, unit=None, zero=False, libs=True,
451-
labels=True, legend=True)
470+
self.create_line_chart(
471+
chart_name=None, title=None, subtitle=None,
472+
data_name=None, unit=None, zero=False, libs=True,
473+
labels=True, legend=True)
452474

453-
self.create_area_chart(chart_name=None, title=None, subtitle=None,
454-
data_name=None, unit=None, zero=False, libs=True,
455-
labels=True, legend=True)
475+
self.create_area_chart(
476+
chart_name=None, title=None, subtitle=None,
477+
data_name=None, unit=None, zero=False, libs=True,
478+
labels=True, legend=True)
456479

457480
self.add_series_to_chart(data_name=None, chart_name=None)
458481

@@ -535,7 +558,8 @@ self.find_text(text, selector="html", by=By.CSS_SELECTOR, timeout=None)
535558
# Duplicates: self.wait_for_text(text, selector="html", by=By.CSS_SELECTOR, timeout=None)
536559
# self.wait_for_text_visible(text, selector="html", by=By.CSS_SELECTOR, timeout=None)
537560

538-
self.wait_for_exact_text_visible(text, selector="html", by=By.CSS_SELECTOR, timeout=None)
561+
self.wait_for_exact_text_visible(
562+
text, selector="html", by=By.CSS_SELECTOR, timeout=None)
539563

540564
self.assert_text(text, selector="html", by=By.CSS_SELECTOR, timeout=None)
541565
# Duplicates: self.assert_text_visible(text, selector="html", by=By.CSS_SELECTOR, timeout=None)

integrations/node_js/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<html>
22
<head>
3-
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" crossorigin="anonymous">
3+
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.6.0/css/bootstrap.min.css" crossorigin="anonymous">
44
<style>
55
body {font-family: Arial, Helvetica, sans-serif;}
66
h1 {color:#3366CC; font-size: 32px;}

seleniumbase/common/ReadMe.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
* @rate_limited(max_per_second)
1010

1111
Example demonstrating a rate-limited printing functionality:
12+
1213
```python
1314
import unittest
1415
from seleniumbase import decorators
@@ -37,6 +38,7 @@ Often in your tests, you may need to login to a website to perform testing. This
3738
* First, set your custom encryption/decryption key in your local clone of [settings.py](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/config/settings.py). (If you modify the key later, you'll need to encrypt all your passwords again.)
3839

3940
* Next, use [obfuscate.py](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/common/obfuscate.py) to obfuscate/encrypt passwords into coded strings:
41+
4042
```bash
4143
python obfuscate.py
4244

@@ -48,14 +50,17 @@ Password: *********
4850
Here is the obfuscated password:
4951
$^*ENCRYPT=RXlYMSJWTz8HSwM=?&#$
5052
```
53+
5154
(You can also use [unobfuscate.py](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/common/unobfuscate.py) to encrypt passwords without having them masked while typing them. Or you can use it to decrypt an obfuscated password.)
5255

5356
* Finally, in your tests you can now decrypt obfuscated passwords for use in login methods like this:
57+
5458
```python
5559
from seleniumbase import encryption
5660
...
5761
password = encryption.decrypt('$^*ENCRYPT=RXlYMSJWTz8HSwM=?&#$')
5862
```
63+
5964
(You'll notice that encrypted strings have a common start token and end token. This is to help tell them apart from non-encrypted strings. You can customize these tokens in [settings.py](https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/config/settings.py). The current default setting is `$^*ENCRYPT=` for the start token and `?&#$` for the end token.)
6065

6166
See [decryption_test.py](https://github.com/seleniumbase/SeleniumBase/blob/master/examples/decryption_test.py) for an example of decrypting encrypted passwords in tests.

0 commit comments

Comments
 (0)