2017-05-08 2 views
1

confest.pypytest_addoption(parser)을 추가하려고합니다. Here are the official Pytest docsPytest TypeError : __init __()에 '브라우저'라는 예상치 못한 키워드가 있습니다.

내가 테스트를 시작하려고하지만 내가 볼

TypeError: __init__() got an unexpected keyword argument 'browser' 

Confest.py

import pytest 
from fixture.application import Application 
__author__ = 'Max' 

fixture = None 

@pytest.fixture 
def app(request): 
    global fixture 
    browser = request.config.getoption("--browser") 
    if fixture is None: 
     fixture = Application(browser=browser) 
    else: 
     if not fixture.is_valid: 
      fixture = Application(browser=browser) 
    fixture.session.ensure_login(username="somename", password="somepassword") 
    return fixture 

def pytest_addoption(parser): 
    # hooks for browsers 
    parser.addoption("--browser", action="store", default="chrome") 

fixture/application.py

from selenium import webdriver 

class Application: 

    def __init__(self,browser): 
     if browser == "chrome": 
      self.wd = webdriver.Chrome() 
     elif browser == "firefox": 
      self.wd = webdriver.Firefox() 
     else: 
      raise ValueError("Unrecognized browser %s" % browser) 
+0

들여 쓰기를 검토하십시오; 그것은 파이썬에서 중요합니다. – jonrsharpe

답변

0

솔루션

Application(browser) (Confest.py에서)을 사용해야합니다.

또 다른 비슷한 문제 : __init__() got an unexpected keyword argument 'user'

설명

당신이 Application(browser=browser)을, 당신은 keyword parameters을 사용하려고합니다. 키워드 매개 변수와

from selenium import webdriver 


class Application: 
    def __init__(self, *args, **kwargs): 
     if kwargs['browser'] == "chrome": 
      self.wd = webdriver.Chrome() 
     elif kwargs['browser'] == "firefox": 
      self.wd = webdriver.Firefox() 
     else: 
      raise ValueError("Unrecognized browser %s" % kwargs['browser']) 
+0

감사합니다. 공장! 문제 해결됨. –