Create Python Framework - Code Snippets

26.05.23 04:53 AM - By topgrep21
  1. Initializing the Selenium WebDriver

from selenium import webdriver
# Initialize the WebDriver for Chrome
driver = webdriver.Chrome(executable_path='path/to/chromedriver.exe')
# Initialize the WebDriver for Firefox
driver = webdriver.Firefox(executable_path='path/to/geckodriver.exe')

  1. Creating a Page Object

from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait

class LoginPage:
  def __init__(self, driver):
  self.driver = driver
  self.username_field = (By.ID, 'username')
  self.password_field = (By.ID, 'password')
  self.login_button = (By.ID, 'login-button')

  def enter_username(self, username):
  self.driver.find_element(*self.username_field).send_keys(username)

  def enter_password(self, password):
  self.driver.find_element(*self.password_field).send_keys(password)

  def click_login_button(self):
  self.driver.find_element(*self.login_button).click()

  def wait_for_login_page(self):
  WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(self.login_button))

3. Writing a Test Case using pytest

import pytest
@pytest.mark.smoke
def test_successful_login(driver):
  login_page = LoginPage(driver)
  login_page.enter_username('testuser')
  login_page.enter_password('password')
  login_page.click_login_button()
  # Add assertions to verify successful login

  1. Setting up Fixtures in pytest
import pytest
from selenium import webdriver

@pytest.fixture(scope='session')
def driver():
  # Initialize the WebDriver
  driver = webdriver.Chrome(executable_path='path/to/chromedriver.exe')
  # Alternatively, use Firefox driver: webdriver.Firefox(executable_path='path/to/geckodriver.exe')

  # Set up any additional configurations or capabilities
  driver.maximize_window()

  # Yield the driver instance to the test
  yield driver

  # Teardown - quit the driver after all tests have finished
  driver.quit()
  1. Capturing Screenshots
import os
import datetime

def capture_screenshot(driver, screenshot_dir):
  timestamp = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
  screenshot_name = f'screenshot_{timestamp}.png'
  screenshot_path = os.path.join(screenshot_dir, screenshot_name)
  driver.save_screenshot(screenshot_path)
These are just a few examples of code snippets that can be used in a Selenium framework. Remember to adapt them to your specific project structure and requirements.

topgrep21