为了账号安全,请及时绑定邮箱和手机立即绑定

如何使python函数使用基于环境变量的字典中的值?

如何使python函数使用基于环境变量的字典中的值?

炎炎设计 2021-03-29 15:09:01
我正在使用pytest和Appium在iOS和Android设备上自动化测试。考虑以下:some_locator:        {        'iOS': ('MobileBy.ACCESSIBILITY_ID', 'some_id'),        'Android': ('MobileBy.ID', 'another_id')        }def foo():    bar = driver.find_element(some_locator)    return bar.text我想在命令行中使用'ios'或'android'参数运行脚本,以使函数find_element使用相应的元组值。我也知道我可以这样做:# conftest.pydef pytest_addoption(parser):    parser.addoption("--platform", default="ios")@pytest.fixturedef cmdopt(request):    return request.config.getoption("--platform")# some_file.pysome_locator:        {        'iOS': ('MobileBy.ACCESSIBILITY_ID', 'some_id'),        'Android': ('MobileBy.ID', 'another_id')        }def foo(platform):    if platform == 'ios':        bar = find_element(*some_locator['ios'])    elif platform == 'android':        bar = find_element(*some_locator['android'])    return bar.text但是坦率地说,我不喜欢这样,因为我必须if在每种方法中添加这些块。有什么方便的方法吗?我的python不好,所以我找不到解决方法,请提出建议。
查看完整描述

2 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

您不能只使用platform变量some_locator直接建立索引吗?IE


def foo(platform):

    return find_element(*some_locator[platform]).text

有效地,some_locator字典执行与if-elif链相同的工作。


查看完整回答
反对 回复 2021-04-09
  • 2 回答
  • 0 关注
  • 125 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信