Ошибка 'function' object has no attribute 'get' При использовании pytest и selenium
Никак не могу понять в чем может быть проблема. При запуске кода появляется ошибка:
Traceback (most recent call last):
File "/home/kadenza/PycharmProjects/tenzor1/pages/search.py", line 32, in <module>
search_page.load()
File "/home/kadenza/PycharmProjects/tenzor1/pages/search.py", line 23, in load
self.browser.get(self.URL)
AttributeError: 'function' object has no attribute 'get'
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver import Chrome
import pytest
@pytest.fixture
def browser():
driver = Chrome()
driver.implicitly_wait(10)
yield driver
driver.quit()
class YandexSearchPage:
URL = 'https://yandex.ru'
SEARCH_INPUT = (By.ID, 'text')
def __init__(self, browser):
self.browser = browser
def load(self):
self.browser.get(self.URL)
def search(self, phrase):
search_input = self.browser.find_element(*self.SEARCH_INPUT)
search_input.send_keys(phrase + Keys.RETURN)
PHRASE = 'это текст для поиска'
search_page = YandexSearchPage(browser)
search_page.load()
search_page.search(PHRASE)
Для проверки попробовал написать такой код и он работает прекрасно.
from selenium.webdriver.common.keys import Keys
from selenium.webdriver import Chrome
import pytest
@pytest.fixture
def browser():
driver = Chrome()
driver.implicitly_wait(10)
yield driver
driver.quit()
def test_search(browser):
URL = 'https://yandex.ru'
PHRASE = 'это текст для поиска'
browser.get(URL)
search_input = browser.find_element_by_id('text')
search_input.send_keys(PHRASE + Keys.RETURN)
Ответы (1 шт):
Автор решения: Іван Шнір
→ Ссылка
У вас тут маленькая ошибка search_page = YandexSearchPage(browser)
Тут вас машина не понимает,
так как чтобы вызвать функцию надо добавить скобки:
search_page = YandexSearchPage(browser())