Python 求助,pytest 登录的 driver 怎么传递到登录之后的操作上

花浅言 · 2022年03月04日 · 最后由 better than yesterday 回复于 2022年03月12日 · 4290 次阅读

用例,引用了 conftest 里面的登录用例,没有传递 get_driver

封装的业务

封装的 page

封装的方法

conftest.py

想把登录用例写在 conftest 里面,然后再用例上调用这个 fixture,结果运行完登录的用例就提示定位不了了,传递 driver 也不行

共收到 9 条回复 时间 点赞

提供一个思路,将 driver 作为 global 变量传递

要多写注释啊,login_case(get_driver) 试试,看不懂很多地方,为啥函数没有 self

def __init__(self,get_driver):
    self.driver = get_driver()

这样试下呢

吹神 回复

之前用了一下,这种的还是不行

Lsir. 回复

pytest 的用例不能有init

应该是 conftest 中 fixture 用的不对造成的,下面这篇对 conftest 的使用介绍的非常详细,希望对你有帮助:
https://www.cnblogs.com/poloyy/p/12663601.html

tester 回复

好的,谢谢

目前的解决方案:在 conftest.py 里面编写的 login 用例用 yield 把 driver 传递出来,后面的用例直接引用 login, login 和 login 后面的操作就使用的同一个 driver

花浅言 关闭了讨论 03月11日 13:58
花浅言 重新开启了讨论 03月11日 14:57
花浅言 重新开启了讨论 03月11日 14:57

这个问题我三年前遇到的,应该是在 conftest.py 中定义就可以了哦

花浅言 关闭了讨论 02月08日 16:29
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册