博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python yield返回多个值
阅读量:5331 次
发布时间:2019-06-15

本文共 1099 字,大约阅读时间需要 3 分钟。

yield可以返回多个值到setup函数中去,但是需要用括号括起来,然后下面具体的函数接受到传值就不需要每次都实例化了。

举例如下:

@pytest.fixture()

def setup(driver):
    nav_bar = NavBar(driver)
    vir_kb = Virtual_Keyboard(driver)
    if not nav_bar.is_left_nav_bar_open():
        nav_bar.click_menu_bar()
    session_list = SessionListPage(driver)
    session_list.launch_session(1)
    api = BzwApi(driver)
    api.init_obj()
    sleep(2)
    yield (api, nav_bar, vir_kb)  #需要用括号括起来
    api.close_session()
@pytest.mark.usefixtures("create_mf_session")
class Test3270OtherFunctionKeysInVirtualKeyboard():
    """Test TE-BlueZone Web 08_3270 other Function Keys in Virtual Keyboard"""
    def test_3270_function_key_backspace(self, setup): #接受到传值就不需要每次都实例化了,这里是setup,
        api, nav_bar, vir_kb = setup #这里就是实例化
        api.send_text('logon')
        cursor_col1 = api.get_cursor()[0]
        cursor_row1 = api.get_cursor()[1]
        nav_bar.click_virtual_keyboard()
        vir_kb.click_bksp()
        sleep(1)
        cursor_col2 = api.get_cursor()[0]
        cursor_row2 = api.get_cursor()[1]
        assert (cursor_col1 == cursor_col2 + 1) and (cursor_row1 == cursor_row2)

PS:需要注意的是,yield返回几个值,实例化就要用几个值,否则就会报错。这里一般是指返回的多,实例化的少,也是不行的。

转载于:https://www.cnblogs.com/Raul2018/p/10565746.html

你可能感兴趣的文章
nodejs,python,sublime和Eclipse的包管理器
查看>>
完善自己的学习方法
查看>>
C89:论四大生命周期修饰类型
查看>>
CSS块级元素和行内元素
查看>>
git stash 保存当前工作状态
查看>>
github环境搭建
查看>>
Struts 2(二):使用Struts2
查看>>
[接口]mmc/eMMC/SD-card
查看>>
[git/svn]Git和SVN差异
查看>>
第四次博客作业
查看>>
Pillow不支持color emoji font!
查看>>
Java实现数据库的读写分离
查看>>
hdu 2076 夹角有多大(题目已修改,注意读题)
查看>>
Java实现二维码QRCode的编码和解码
查看>>
html元素调用服务器方法
查看>>
Java 实现斐波那契数列
查看>>
谱聚类算法(Spectral Clustering)
查看>>
Activity树图
查看>>
在url里请求id
查看>>
关于【指针作为形参,改变实参的值】的理解!
查看>>