【问题标题】:(python) Using @parameterized lib with declaring a driver?(python) 使用@parameterized lib 声明驱动程序?
【发布时间】:2018-11-26 16:25:21
【问题描述】:

我正在编写用于创建新用户的参数化 UI 测试。以前我是用@pytest.mark.parametrize() 做的,但现在我决定试试@parameterized。 我的代码是什么样子的:

class TestUsers:

    @pytest.mark.usefixtures("open_users_page")
    @pytest.mark.usefixtures("login")
    @parameterized.expand([
        ('username', 'password', 'password_confirm', 'email'),  # test id

... 和其他参数。 之后:

@pytest.mark.usefixtures("fill_create_user_form")  # where i fill non-parameterized fields
def test_user(self, driver, name, password, password_confirm, email):
    users_page = UsersPage(driver)  # where driver is a geckodriver
    users_page.set_name(name)
    users_page.set_password(password)
    users_page.set_password_conf(passwordConf)
    users_page.set_email(email)
    users_page.click_create_new_user_button()

运行后我得到错误:TypeError: test_user() missing 1 required positional argument: 'email' 我们试着像这样重写它:

def test_user(self, *args, **kwargs)
    print(args, kwargs)
    users_page = UsersPage(driver)

-- 测试打印 args 并进入下一步,然后再进入下一步并使用驱动程序。 我必须注意到这个测试有效:

    def test_empty_fields(self, driver):
    """Try to create a new user with empty input fields - an errors should appear"""
    users_page = UsersPage(driver)
    users_page.click_add_user_button()
    users_page.click_create_new_user_button()
    errors = users_page.find_item_errors_on_page()
    errors_count = len(errors)
    assert errors_count == 9

所以问题是:在这种情况下如何使用selfdriver? 还是我应该忘记测试类和@parameterized 并使用旧的@pytest.mark.parametrize? :)

【问题讨论】:

    标签: python selenium parameterized


    【解决方案1】:

    好吧,经过几天的调试,我们了解到,当我在测试类之前有几个夹具,然后在类本身中有几个夹具时,其中一些返回给我“驱动程序”,然后我有这个代码:

    @parameterized.expand([
            ("short password", 'username', 'password', 'password', 'email@email.com', '',
             pass_len_errs),
    ...)
    
    • parameterized 可能认为第一个参数(即“短密码”- 测试名称)- 是驱动程序本身。所以这可能是争论的冲突。

    【讨论】:

      猜你喜欢
      • 2017-04-10
      • 1970-01-01
      • 1970-01-01
      • 2020-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-06
      相关资源
      最近更新 更多