1+
2+ from selenium .webdriver .common .by import By
3+
4+ # ==================== LOGIN PAGE ====================
5+ LOGIN = {
6+ "USERNAME_INPUT" : (By .ID , "user-name" ),
7+ "PASSWORD_INPUT" : (By .ID , "password" ),
8+ "LOGIN_BUTTON" : (By .ID , "login-button" ),
9+ "ERROR_MESSAGE" : (By .CSS_SELECTOR , "[data-tests='error']" ),
10+ "SWAG_LABS_LOGO" : (By .CLASS_NAME , "login_logo" ),
11+ "BURGER_MENU_BUTTON" : (By .ID , "react-burger-menu-btn" ),
12+ "LOGOUT_LINK" : (By .CSS_SELECTOR , "[data-tests='logout-sidebar-link']" ),
13+ }
14+
15+ # ==================== INVENTORY PAGE ====================
16+ INVENTORY = {
17+ "TITLE" : (By .CLASS_NAME , "title" ),
18+ "PRIMARY_HEADER" : (By .CSS_SELECTOR , "[data-tests='primary-header']" ),
19+ "SHOPPING_CART_LINK" : (By .CSS_SELECTOR , "[data-tests='shopping-cart-link']" ),
20+ "SHOPPING_CART_BADGE" : (By .CLASS_NAME , "shopping_cart_badge" ),
21+ "BURGER_MENU_BUTTON" : (By .ID , "react-burger-menu-btn" ),
22+ "CROSS_BURGER_BUTTON" : (By .ID , "react-burger-cross-btn" ),
23+ "SORT_DROPDOWN" : (By .CLASS_NAME , "product_sort_container" ),
24+ "PRODUCT_ITEM" : (By .CLASS_NAME , "inventory_item" ),
25+ "PRODUCT_NAME" : (By .CLASS_NAME , "inventory_item_name" ),
26+ "PRODUCT_PRICE" : (By .CLASS_NAME , "inventory_item_price" ),
27+ "PRODUCT_DESCRIPTION" : (By .CSS_SELECTOR , "[data-tests='inventory-item-desc']" ),
28+ "ADD_TO_CART_PREFIX" : (By .CSS_SELECTOR , "[data-tests^='add-to-cart-']" ),
29+ }
30+
31+ # ==================== CART PAGE ====================
32+ CART = {
33+ "TITLE" : (By .CSS_SELECTOR , "[data-tests='title']" ),
34+ "CART_ITEMS" : (By .CLASS_NAME , "cart_item" ),
35+ "ITEM_NAME" : (By .CLASS_NAME , "inventory_item_name" ),
36+ "CHECKOUT_BUTTON" : (By .ID , "checkout" ),
37+ "CONTINUE_SHOPPING_BTN" : (By .CSS_SELECTOR , "[data-tests='continue-shopping']" ),
38+ "SHOPPING_CART_BADGE" : (By .CLASS_NAME , "shopping_cart_badge" ),
39+ "REMOVE_BTN_PREFIX" : (By .CSS_SELECTOR , "[data-tests^='remove-']" ),
40+ "CART_QUANTITY" : (By .CSS_SELECTOR , "[data-tests='item-quantity']" ),
41+ }
42+
43+ # ==================== CHECKOUT PAGE ====================
44+ CHECKOUT = {
45+ # Step One
46+ "FIRST_NAME" : (By .ID , "first-name" ),
47+ "LAST_NAME" : (By .ID , "last-name" ),
48+ "ZIP_CODE" : (By .ID , "postal-code" ),
49+ "CONTINUE_BUTTON" : (By .ID , "continue" ),
50+ "CANCEL_BUTTON" : (By .CSS_SELECTOR , "[data-tests='cancel']" ),
51+ "ERROR_MESSAGE" : (By .CSS_SELECTOR , "[data-tests='error']" ),
52+
53+ # Step Two (Overview)
54+ "PAYMENT_INFO_LABEL" : (By .CSS_SELECTOR , "[data-tests='payment-info-label']" ),
55+ "PAYMENT_INFO_VALUE" : (By .CSS_SELECTOR , "[data-tests='payment-info-value']" ),
56+ "SHIPPING_INFO_LABEL" : (By .CSS_SELECTOR , "[data-tests='shipping-info-label']" ),
57+ "SHIPPING_INFO_VALUE" : (By .CSS_SELECTOR , "[data-tests='shipping-info-value']" ),
58+ "TOTAL_INFO_LABEL" : (By .CSS_SELECTOR , "[data-tests='total-info-label']" ),
59+ "SUBTOTAL_LABEL" : (By .CLASS_NAME , "summary_subtotal_label" ),
60+ "TAX_LABEL" : (By .CLASS_NAME , "summary_tax_label" ),
61+ "TOTAL_LABEL" : (By .CLASS_NAME , "summary_total_label" ),
62+ "FINISH_BUTTON" : (By .ID , "finish" ),
63+
64+ # Step Three (Complete)
65+ "COMPLETE_HEADER" : (By .CSS_SELECTOR , "[data-tests='complete-header']" ),
66+ "COMPLETE_TEXT" : (By .CSS_SELECTOR , "[data-tests='complete-text']" ),
67+ "BACK_HOME_BUTTON" : (By .CSS_SELECTOR , "[data-tests='back-to-products']" ),
68+ }
0 commit comments