如何在另一个场景中使用一个场景中的全局变量。Python、Webdriver、莴苣

如何在另一个场景中使用一个场景中的全局变量。Python、Webdriver、莴苣,python,selenium,testing,webdriver,lettuce,Python,Selenium,Testing,Webdriver,Lettuce,我正在使用WebDriver、莴苣和python进行测试。在第一个场景I verifay中,该用户可以创建一个帐户。对于用户名,我使用带有时间戳的电子邮件generaror。 第一步是: Then input text "NEW_EMAIL" to text field with ID "s-txt-email" Then input text "generated_email" to text field with ID "l-txt-email-address" python代码是: @

我正在使用WebDriver、莴苣和python进行测试。在第一个场景I verifay中,该用户可以创建一个帐户。对于用户名,我使用带有时间戳的电子邮件generaror。 第一步是:

Then input text "NEW_EMAIL" to text field with ID "s-txt-email"
Then input text "generated_email" to text field with ID "l-txt-email-address"
python代码是:

@step('input text "([^"]*)" to text field with ID "([^"]*)"')
def input_with_id(step, txt, ID):
    global new_email
    links = get_driver().find_elements_by_xpath("//input[@id='%s']" % ID)
    if links:
        links[0].click()
    else:
        raise ValueError('Link with ID %s not found' % ID)
    if not "generated_email" in txt:
        timestamp = datetime.now().strftime('%m_%d_%Y.%H_%M')
        new_email = "automation.%s@yopmail.com" % timestamp
        txts = {"NEW_EMAIL": new_email,
                "STANDARD_PSW": "xxxxx",
                "NEW_USER": new_email,
                }
        if txt in txts.keys():
            txt = txts[txt]
    else:
        txt = new_email
    links[0].send_keys(str(txt))
在另一个场景中,我使用相同的代码来验证用户是否可以登录。 第一步是:

Then input text "NEW_EMAIL" to text field with ID "s-txt-email"
Then input text "generated_email" to text field with ID "l-txt-email-address"
python代码是相同的(见上文)。
但它会生成带有新时间戳的新电子邮件,用户无法登录。我搞错什么了?我如何在另一个场景中使用一个场景中的全局变量?

您是如何调试的?我看不到这些尝试的结果。如果没有其他内容,您至少应该在似乎失败的If not语句之前打印出txt和in测试的结果。您希望看到哪个输出?该代码的主要思想是生成新的电子邮件地址,然后将其发送给ID为的元素,并将该地址存储在全局变量new_email中,以便在其他场景中使用。这段代码创建新的电子邮件,但我不能在其他场景中使用全局变量。我的问题是如何存储新的电子邮件以在其他场景中使用它?通常的方法——我想你已经知道了——是将其作为函数结果返回,将其填充到全局中,将其存储在持久对象中,等等。我不明白你当前的方法如何/为什么不起作用。