Skip to content

Commit 5121b90

Browse files
author
Gaurav Singh
committed
Running your first test
1. Added a search test for filtering books in automation bookstore 2. Added functions to open/close the eyes in conftest.py
1 parent 0a9517b commit 5121b90

File tree

9 files changed

+60
-14
lines changed

9 files changed

+60
-14
lines changed

Pipfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ verify_ssl = true
88
[packages]
99
eyes-selenium = "*"
1010
pytest = "*"
11+
assertpy = "*"
1112

1213
[requires]
1314
python_version = "3.7.4"

Pipfile.lock

Lines changed: 8 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

automation/config/base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
APPLITOOLS_API_KEY = ''
1+
APPLITOOLS_API_KEY = '90kofH0UZKBDtYRsr2INmcsp1CstpudNEPnmK0HnQoA110'

automation/page_objects/__init__.py

Whitespace-only changes.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
class SearchPage:
2+
def __init__(self, driver):
3+
self.driver = driver
4+
5+
def filter_books(self, search_text):
6+
element = self.driver.find_element_by_id('searchBar')
7+
element.send_keys(search_text)
8+
9+
def verify_visible_books_by_title(self, expected_title):
10+
elements = self.driver.find_elements_by_css_selector(
11+
'#productList li a h2')
12+
for element in elements:
13+
if expected_title in element.text:
14+
return True
15+
16+
return False

automation/tests/chapter_04/hello_world.py renamed to automation/tests/chapter_04/hello_world_test.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33

44
def test_hello_world(driver, eyes):
5-
open_eyes(driver, eyes)
6-
validate_window(eyes, tag='hello_world')
5+
validate_window(driver, eyes, tag='hello_world')
76
driver.find_element_by_css_selector('button').click()
8-
validate_window(eyes, 'click_me')
7+
validate_window(driver, eyes, 'click_me')

automation/tests/chapter_05/__init__.py

Whitespace-only changes.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
from assertpy import assert_that
2+
3+
from automation.tests.conftest import open_eyes, validate_window, close_eyes
4+
from automation.page_objects.search_page import SearchPage
5+
6+
7+
def test_filter_book(eyes, driver):
8+
page = SearchPage(driver)
9+
10+
page.filter_books('Agile')
11+
result = page.verify_visible_books_by_title('Agile Testing')
12+
assert_that(result).is_equal_to(True)
13+
14+
validate_window(driver, eyes, tag='filter_text')
15+
16+
17+

automation/tests/conftest.py

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,22 @@
44

55
from automation.config.base import APPLITOOLS_API_KEY
66

7-
APP_NAME = 'hello_world'
7+
APP_NAME = 'automation_bookstore'
8+
APP_UNDER_TEST = 'file:///Users/gaurav/Self/Dev/automated-visual-testing/website/index.html'
89

910

1011
@pytest.fixture(scope='function')
1112
def driver():
1213
driver = webdriver.Chrome()
13-
driver.get('https://applitools.com/helloworld')
14+
driver.get(APP_UNDER_TEST)
1415
yield driver
1516
driver.quit()
1617

1718

1819
@pytest.fixture(scope='function')
19-
def eyes(driver):
20+
def eyes():
2021
eyes = initialize_eyes()
2122
yield eyes
22-
eyes.close()
2323

2424

2525
def initialize_eyes():
@@ -28,14 +28,20 @@ def initialize_eyes():
2828
return eyes
2929

3030

31-
def open_eyes(driver, eyes):
32-
eyes.open(driver, APP_NAME, test_name=get_test_name())
31+
def validate_window(driver, eyes, tag):
32+
open_eyes(driver, eyes)
33+
eyes.check_window(tag=tag)
34+
close_eyes(eyes)
3335

3436

35-
def validate_window(eyes, tag):
36-
eyes.check_window(tag)
37+
def open_eyes(driver, eyes):
38+
eyes.open(driver, APP_NAME, test_name=get_test_name())
3739

3840

3941
def get_test_name():
4042
import inspect
41-
return inspect.stack()[2].function
43+
return inspect.stack()[3].function
44+
45+
46+
def close_eyes(eyes):
47+
eyes.close()

0 commit comments

Comments
 (0)