gpt4 book ai didi

python - 如何将有关被调用脚本关闭时保持打开状态的浏览器窗口的 python 数据传递回调用脚本

转载 作者:太空宇宙 更新时间:2023-11-03 20:16:23 25 4
gpt4 key购买 nike

我正在尝试找到将数据从 python script2.py 传递回调用脚本 (script1.py) 的最佳方法。我在 Linux 上使用 Python 3。

Script1 调用 script2.py,然后使用 Selenium 打开浏览器窗口并执行某些操作。当 script2 结束时,浏览器保持打开状态,而 script1 继续。我想要的是能够在 script1 中的 script2 中打开的浏览器窗口上工作。

到目前为止,我还没有找到合适的方法将有关打开的浏览器窗口的信息从 script2 传递回 script1。我认为问题的一部分是因为当调用 script2 时, script1 会等到它关闭后再继续,因此无法获取 script2 中打开的变量。我也不想改变这方面。

在 script1.py 中,以下代码调用 script2,如下所示:

cmd = ['python3', '/home/admin/Desktop/Python_stuff/live-scripts/script2.py']
subprocess.Popen(cmd).wait() # Python will now wait for script to end before continuing

在 script2 中,以下代码最初打开浏览器(当前在 script2 关闭后保持打开状态),如下所示:

driver.get(targetURL)

我已经看过 Pickle,但无法让它按照我想要的方式工作,接下来可能会尝试使用导入 JSON。但我想知道我是否缺少一种更简单的方法来实现我想要的目标。

最佳答案

感谢评论中的 pguardiario 让我走上了正确的道路。答案是使用 script2 作为模块。

我实际上已经尝试这样做了,但是它使我的 script1 崩溃,因为我的脚本命名中有破折号,当它们是脚本时工作正常,但由于某种原因当它们用作模块时不起作用但也不会给你任何错误。它完全从脚本中消失了(在我的 linux/python 3 设置上就是这种情况)。

解决文件命名问题后,解决方案出奇地简单。

在 script1.py 中我现在有

import script2

然后我从第二个脚本调用 main() 函数

script2.main

我不必对 script2 进行任何更改,它从本地文件夹运行,因此不需要额外的路径设置,而且我现在也可以删除所有脚本调用代码。

要点是不要在模块命名中使用破折号,因为它不会给您错误警告,但不会导入它们。

关于python - 如何将有关被调用脚本关闭时保持打开状态的浏览器窗口的 python 数据传递回调用脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58422427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com