Я получаю 'AttributeError: объект TestClass' не имеет атрибута 'get' 'во время выполнения теста - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь создать тестовый пример, используя pytest. Я использую приспособление pytest для своего test_case. Но каждый раз, когда я выполняю код, я получаю сообщение об ошибке:

    def test_case(webdriver_definition):
    driver = webdriver_definition
    baseURL = 'https://www.di.fm/'
>   driver.get(baseURL)
E   AttributeError: 'TestClass' object has no attribute 'get'

Мой тестовый класс

class TestClass:

@pytest.fixture(autouse=True)
def webdriver_definition(self):
    driver = webdriver.Chrome(executable_path="D:/Selenium webdriver/chromedriver_win32/chromedriver.exe")
    driver.implicitly_wait(2)
    driver.maximize_window()
    print('=================Driver initialized===================')
    return driver

def test_case(webdriver_definition):
    driver = webdriver_definition
    baseURL = 'https://www.di.fm/'
    driver.get(baseURL)
    home_button = sd.find_element("//nav[@id='side-nav']/ul//span[.='Home']")
    if home_button:
        print(f'Element {home_button} was found\n')
    else:
        print(f'Element {home_button} was not found')
    home_button.click()
    time.sleep(2)
    driver.quit()

1 Ответ

1 голос
/ 30 октября 2019

Это потому, что Python ожидает self в качестве первого параметра в test_case(), поэтому webdriver_definition был обработан как self, то есть TestClass

class TestClass:

    @pytest.fixture(autouse=True)
    def webdriver_definition(self):
        driver = webdriver.Chrome(executable_path="D:/Selenium webdriver/chromedriver_win32/chromedriver.exe")
        # ...
        return driver

    def test_case(self, webdriver_definition):
        driver = webdriver_definition
        baseURL = 'https://www.di.fm/'
        driver.get(baseURL)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...