Below is code of my framework for testing which I am building, but I am getting the error 'TestLogin' object has no attribute 'driver'
.
Confest.py code:
import pytest
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
driver = None
def pytest_addoption(parser):
parser.addoption(
"--browser_name", action="store", default="chrome",
)
@pytest.fixture(scope="class")
def setup(request):
"""
hdhdhdh
"""
browser_name = request.config.getoption("--browser_name")
if browser_name == "chrome":
driver = webdriver.Chrome(executable_path='C:/Users/Devesh/PycharmProjects/E-mandi/Drivers/chromedriver.exe')
elif browser_name == "firefox":
driver = webdriver.Firefox(executable_path='C:/Users/Devesh/PycharmProjects/E-mandi/Drivers/geckodriver.exe')
driver.get('http://www.facebook.com/login') (for example not real url)
driver.maximize_window()
driver.delete_all_cookies()
request.cls.driver = WebDriverWait(driver, 30)
request.cls.driver = driver
yield
driver.close()
BaseClass:
import pytest
@pytest.mark.usefixtures("setup")
class BaseClass:
pass
LoginPage:
from selenium.webdriver.common.by import By
class LoginPage:
def __init__(self, driver):
self.driver = driver
mobile = (By.CSS_SELECTOR, "input.ng-untouched.ng-pristine.ng-invalid")
def loginclick(self):
return self.driver.find_element(*LoginPage.mobile)
test_main:
from Pageobjects.LoginPage import LoginPage
from Utilities.BaseClass import BaseClass
class TestLogin(BaseClass):
def test_01_login(self):
loginpage = LoginPage(self.driver)
loginpage.loginclick().click()