Skip to content

Commit b08f486

Browse files
authored
Merge pull request #335 from seleniumbase/standardize-methods
Standardize methods
2 parents b1db6cc + 6236f10 commit b08f486

File tree

6 files changed

+158
-88
lines changed

6 files changed

+158
-88
lines changed

examples/github_test.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
11
from seleniumbase import BaseCase
2-
import time
32

43

54
class GitHubTests(BaseCase):
65

76
# Selenium can trigger GitHub's abuse detection mechanism:
87
# "You have triggered an abuse detection mechanism."
98
# "Please wait a few minutes before you try again."
10-
# To avoid this, slow down Selenium actions.
11-
def slow_click(self, css_selector):
12-
time.sleep(1.05)
13-
self.click(css_selector)
9+
# To avoid this, slow_click() is being used to
10+
# slow down Selenium actions.
1411

1512
def test_github(self):
1613
self.open("https://github.com/")

examples/upload_file_test.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
from seleniumbase import BaseCase
2+
3+
4+
class FileUploadButtonTests(BaseCase):
5+
6+
""" The main purpose of this is to test the self.choose_file() method. """
7+
8+
def test_file_upload_button(self):
9+
self.open("https://www.w3schools.com/jsref/tryit.asp"
10+
"?filename=tryjsref_fileupload_get")
11+
self.wait_for_element('[id*="google_ads"]')
12+
self.remove_elements('[id*="google_ads"]')
13+
self.switch_to_frame('iframeResult')
14+
self.add_css_style(
15+
'input[type="file"]{zoom: 1.5;-moz-transform: scale(1.5);}')
16+
self.highlight('input[type="file"]')
17+
self.choose_file('input[type="file"]', "example_logs/screenshot.png")
18+
self.demo_mode = True # Adds highlighting to the assert statement
19+
self.assert_element('input[type="file"]')

help_docs/method_summary.md

Lines changed: 22 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,15 @@ self.open(url)
99

1010
self.open_url(url)
1111

12-
self.click(selector, by=By.CSS_SELECTOR, timeout=settings.SMALL_TIMEOUT)
12+
self.visit(url)
13+
14+
self.click(selector, by=By.CSS_SELECTOR, timeout=settings.SMALL_TIMEOUT, delay=0)
15+
16+
self.slow_click(selector, by=By.CSS_SELECTOR, timeout=settings.SMALL_TIMEOUT)
1317

1418
self.double_click(selector, by=By.CSS_SELECTOR, timeout=settings.SMALL_TIMEOUT)
1519

16-
self.click_chain(selectors_list, by=By.CSS_SELECTOR,
17-
timeout=settings.SMALL_TIMEOUT, spacing=0)
20+
self.click_chain(selectors_list, by=By.CSS_SELECTOR, timeout=settings.SMALL_TIMEOUT, spacing=0)
1821

1922
self.is_link_text_present(link_text)
2023

@@ -30,17 +33,13 @@ self.click_partial_link_text(partial_link_text, timeout=settings.SMALL_TIMEOUT)
3033

3134
self.get_text(selector, by=By.CSS_SELECTOR, timeout=settings.SMALL_TIMEOUT)
3235

33-
self.get_attribute(selector, attribute, by=By.CSS_SELECTOR,
34-
timeout=settings.SMALL_TIMEOUT)
36+
self.get_attribute(selector, attribute, by=By.CSS_SELECTOR, timeout=settings.SMALL_TIMEOUT)
3537

36-
self.set_attribute(selector, attribute, value, by=By.CSS_SELECTOR,
37-
timeout=settings.SMALL_TIMEOUT)
38+
self.set_attribute(selector, attribute, value, by=By.CSS_SELECTOR, timeout=settings.SMALL_TIMEOUT)
3839

39-
self.remove_attribute(selector, attribute, by=By.CSS_SELECTOR,
40-
timeout=settings.SMALL_TIMEOUT)
40+
self.remove_attribute(selector, attribute, by=By.CSS_SELECTOR, timeout=settings.SMALL_TIMEOUT)
4141

42-
self.get_property_value(selector, property, by=By.CSS_SELECTOR,
43-
timeout=settings.SMALL_TIMEOUT)
42+
self.get_property_value(selector, property, by=By.CSS_SELECTOR, timeout=settings.SMALL_TIMEOUT)
4443

4544
self.refresh_page()
4645

@@ -60,15 +59,13 @@ self.go_forward()
6059

6160
self.get_image_url(selector, by=By.CSS_SELECTOR, timeout=settings.SMALL_TIMEOUT)
6261

63-
self.add_text(selector, new_value, timeout=settings.SMALL_TIMEOUT)
62+
self.add_text(selector, text, by=By.CSS_SELECTOR, timeout=settings.SMALL_TIMEOUT)
6463

65-
self.send_keys(selector, new_value, timeout=settings.SMALL_TIMEOUT)
64+
self.send_keys(selector, text, by=By.CSS_SELECTOR, timeout=settings.SMALL_TIMEOUT)
6665

67-
self.update_text_value(selector, new_value,
68-
timeout=settings.SMALL_TIMEOUT, retry=False)
66+
self.update_text(selector, new_value, by=By.CSS_SELECTOR, timeout=settings.SMALL_TIMEOUT, retry=False)
6967

70-
self.update_text(selector, new_value, timeout=settings.SMALL_TIMEOUT,
71-
retry=False)
68+
self.type(selector, text, by=By.CSS_SELECTOR, timeout=settings.SMALL_TIMEOUT, retry=False)
7269

7370
self.is_element_present(selector, by=By.CSS_SELECTOR)
7471

@@ -118,8 +115,7 @@ self.create_hopscotch_tour(name=None)
118115

119116
self.create_introjs_tour(name=None)
120117

121-
self.add_tour_step(message, selector=None, name=None,
122-
title=None, theme=None, alignment=None)
118+
self.add_tour_step(message, selector=None, name=None, title=None, theme=None, alignment=None)
123119

124120
self.play_tour(name=None)
125121

@@ -135,8 +131,7 @@ self.post_success_message(message, duration=None, pause=True)
135131

136132
self.post_error_message(message, duration=None, pause=True)
137133

138-
self.set_messenger_theme(theme="default", location="default",
139-
max_messages="default")
134+
self.set_messenger_theme(theme="default", location="default", max_messages="default")
140135

141136
self.bring_to_front(selector, by=By.CSS_SELECTOR)
142137

@@ -186,6 +181,8 @@ self.safe_execute_script(script)
186181

187182
self.create_folder(folder)
188183

184+
self.choose_file(selector, file_path, by=By.CSS_SELECTOR, timeout=settings.SMALL_TIMEOUT)
185+
189186
self.save_element_as_image_file(selector, file_name, folder=None)
190187

191188
self.download_file(file_url, destination_folder=None)
@@ -218,23 +215,16 @@ self.convert_xpath_to_css(xpath)
218215

219216
self.convert_to_css_selector(selector, by)
220217

221-
self.set_value(selector, new_value, by=By.CSS_SELECTOR,
222-
timeout=settings.SMALL_TIMEOUT)
223-
224-
self.js_update_text(selector, new_value, by=By.CSS_SELECTOR,
225-
timeout=settings.LARGE_TIMEOUT)
218+
self.set_value(selector, new_value, by=By.CSS_SELECTOR, timeout=settings.SMALL_TIMEOUT)
226219

227-
self.jquery_update_text_value(selector, new_value, by=By.CSS_SELECTOR,
228-
timeout=settings.SMALL_TIMEOUT)
220+
self.js_update_text(selector, new_value, by=By.CSS_SELECTOR, timeout=settings.LARGE_TIMEOUT)
229221

230-
self.jquery_update_text(selector, new_value, by=By.CSS_SELECTOR,
231-
timeout=settings.SMALL_TIMEOUT)
222+
self.jquery_update_text(selector, new_value, by=By.CSS_SELECTOR, timeout=settings.SMALL_TIMEOUT)
232223

233224
self.hover_on_element(selector, by=By.CSS_SELECTOR)
234225

235226
self.hover_and_click(hover_selector, click_selector,
236-
hover_by=By.CSS_SELECTOR, click_by=By.CSS_SELECTOR,
237-
timeout=settings.SMALL_TIMEOUT)
227+
hover_by=By.CSS_SELECTOR, click_by=By.CSS_SELECTOR, timeout=settings.SMALL_TIMEOUT)
238228

239229
self.select_option_by_text(dropdown_selector, option,
240230
dropdown_by=By.CSS_SELECTOR, timeout=settings.SMALL_TIMEOUT)

seleniumbase/core/log_helper.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,3 +130,9 @@ def log_folder_setup(log_path, archive_logs=False):
130130
os.makedirs(log_path)
131131
if not settings.ARCHIVE_EXISTING_LOGS and not archive_logs:
132132
shutil.rmtree(archived_logs)
133+
elif len(os.listdir(archived_logs)) == 0:
134+
# Don't archive an empty directory
135+
shutil.rmtree(archived_logs)
136+
else:
137+
# Logs are saved/archived
138+
pass

0 commit comments

Comments
 (0)