如何在Python中运行pytest for SeleniumBase时从其他函数获取输入变量?

qlvxas9a  于 2023-01-17  发布在  Python
关注(0)|答案(1)|浏览(121)

我上传到网站的文件会随着每次运行而改变,我希望在测试方法中改变它。目前,我的设置如下:

函数.py

def get_file():
    ...
    file = file_ex1.doc
    return file

def run_test1():
    cmd = "pytest -v webtests.py::EF --browser=chrome"
    subprocess.run(split(cmd))  # run command line
...

网络测试.py

file_path = file  # changes with each run, should come from get_file()

class EF(BaseCase):
    def test_now(self):
        self.open('https://www...')
        self.find_element('input[name="Query"]').send_keys(file_path)`

我想知道根据functions.py中某些函数的输出来修改file_path变量的最佳方法。例如,有时它会生成一个名为file1的文件来上传,有时会生成一个名为filet2.txt的文件。连接这两个脚本并在每次运行时使用更新的文件路径来运行test_now()的最佳方法是什么?或者应该以不同的方式设置它们?
先谢谢你了。

lp0sw83n

lp0sw83n1#

您可以使用SeleniumBase附带的最小参数。

--data=DATA  # (Extra test data. Access with "self.data" in tests.)
--var1=DATA  # (Extra test data. Access with "self.var1" in tests.)
--var2=DATA  # (Extra test data. Access with "self.var2" in tests.)
--var3=DATA  # (Extra test data. Access with "self.var3" in tests.)

来源:Docs

相关问题