Python 根据运行pytest的命令行中的参数选择文件名

Python 根据运行pytest的命令行中的参数选择文件名,python,selenium,pytest,Python,Selenium,Pytest,我有一个结构与此相同的项目: . 在conftest.py中,我从cmd获取参数。 在mane_page.py中的一个函数中,我需要为变量指定一个值(=cmd中的参数)。 例如: cmd:pytest-s-v--language=en--status=empty test\u main\u page.py class MainPage(BasePage): def go_to_login_page(self,choose_status): if choose_statu

我有一个结构与此相同的项目: . 在conftest.py中,我从cmd获取参数。 在mane_page.py中的一个函数中,我需要为变量指定一个值(=cmd中的参数)。 例如:

cmd:pytest-s-v--language=en--status=empty test\u main\u page.py

class MainPage(BasePage): 
    def go_to_login_page(self,choose_status):
        if choose_status == "clear":
            #do smth
然后在main_page.py中,我要执行以下操作:

from.base\u页面导入BasePage
从selenium.webdriver.common.by导入
从。定位器导入MainPageLocator
类主页(基本页):
def go_to_login_页面(自我):
login_link=self.browser.find_元素(By.CSS_选择器,“#login_link”)
登录链接。单击()

**所选状态=状态**您可以将其作为参数从测试中发送到
go\u to\u login\u page()

@pytest.fixture
def choose_status(request):
    return request.config.getoption("status")

def test_main_page(choose_status):
    MainPage().go_to_login_page(choose_status)


class MainPage(BasePage): 
    def go_to_login_page(self, status):
        # status = empty

以下是解决我的问题的最终代码: conftest.py

@pytest.fixture
def choose_status(request):
    return request.config.getoption("status")


def test_main_page(choose_status):
    MainPage().go_to_login_page(choose_status)
在main_page.py中

class MainPage(BasePage): 
    def go_to_login_page(self,choose_status):
        if choose_status == "clear":
            #do smth
在测试主页面中:

def test_guest_can_go_to_login_page(browser,choose_status):
    link = "someurl"

    page = MainPage(browser, link)   
    page.open()                      
    page.go_to_login_page(choose_status)   
    page.should_be_login_link()

我尝试并得到:TypeError:go_to_login_page()缺少1个必需的位置参数:“status”@Roman您需要将参数添加到
go_to_login_page(self,status)
可能我不明白,但这是我的代码:@Roman我正在工作,我当前无法打开此文件。您的
登录页面()函数签名是什么<代码>转到登录页面(自我)
转到登录页面(自我,状态)
?def转到登录页面(自我,状态)
def test_guest_can_go_to_login_page(browser,choose_status):
    link = "someurl"

    page = MainPage(browser, link)   
    page.open()                      
    page.go_to_login_page(choose_status)   
    page.should_be_login_link()