Skip to content

Commit 9541c64

Browse files
committed
Add 3 examples of using page objects with seleniumbase
1 parent 85a20d0 commit 9541c64

File tree

3 files changed

+79
-0
lines changed

3 files changed

+79
-0
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
from seleniumbase import BaseCase
2+
3+
4+
class DataPage():
5+
6+
def go_to_data_url(self, sb):
7+
sb.open("data:text/html,<p>Hello!</p>")
8+
9+
10+
class MyTests(BaseCase):
11+
12+
def test_go_to_data_url(self):
13+
DataPage().go_to_data_url(self)
14+
self.assert_text("Hello!", "p")
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
from seleniumbase import BaseCase
2+
3+
4+
class LoginPage():
5+
6+
def login_to_swag_labs(self, sb, username):
7+
sb.type("#user-name", username)
8+
sb.type("#password", "secret_sauce")
9+
sb.click('input[type="submit"]')
10+
11+
12+
class MyTests(BaseCase):
13+
14+
def test_swag_labs_login(self):
15+
self.open("https://www.saucedemo.com/")
16+
LoginPage().login_to_swag_labs(self, "standard_user")
17+
self.assert_element("#inventory_container")
18+
self.assert_text("Products", "div.product_label")
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
from seleniumbase import BaseCase
2+
3+
4+
class GooglePage():
5+
6+
def go_to_google(self, sb):
7+
sb.open("https://google.com/ncr")
8+
9+
def do_search(self, sb, search_term):
10+
sb.type('input[title="Search"]', search_term + '\n')
11+
12+
def click_search_result(self, sb, content):
13+
sb.click('a[href*="%s"]' % content)
14+
15+
16+
class SeleniumBaseGitHubPage():
17+
18+
def click_seleniumbase_io_link(self, sb):
19+
sb.js_click('a[href*="seleniumbase.io"]')
20+
sb.wait_for_ready_state_complete()
21+
current_url = sb.get_current_url()
22+
if "seleniumbase.io" not in current_url:
23+
# GitHub probably opened a new window
24+
sb.switch_to_window(1)
25+
26+
27+
class SeleniumBaseIOPage():
28+
29+
def do_search_and_click(self, sb, search_term):
30+
if sb.is_element_visible('[for="__search"] svg'):
31+
sb.click('[for="__search"] svg')
32+
sb.type('form[name="search"] input', search_term)
33+
sb.click('li.md-search-result__item h1:contains(%s)' % search_term)
34+
35+
36+
class MyTests(BaseCase):
37+
38+
def test_page_objects(self):
39+
search_term = "SeleniumBase GitHub"
40+
expected_text = "seleniumbase/SeleniumBase"
41+
GooglePage().go_to_google(self)
42+
GooglePage().do_search(self, search_term)
43+
self.assert_text(expected_text, '#search')
44+
GooglePage().click_search_result(self, expected_text)
45+
SeleniumBaseGitHubPage().click_seleniumbase_io_link(self)
46+
SeleniumBaseIOPage().do_search_and_click(self, "Dashboard")
47+
self.assert_text("Dashboard", 'main h1')

0 commit comments

Comments
 (0)