如何将 python 数据传递回有关浏览器的调用脚本 window 在被调用脚本关闭时保持打开状态
How to pass python data back to the calling script about a browser window left open when the called script closes
我正在尝试找到将数据从 python script2.py 传回调用脚本 (script1.py) 的最佳方法。我在 Linux.
上使用 Python 3
Script1 调用 script2.py 然后使用 Selenium 打开浏览器 window 并做一些事情。当 script2 结束时,浏览器保持打开状态,而 script1 继续。我想要的是能够在 script1.
中在 script2 中打开的浏览器 window 上工作
到目前为止,我未能找到合适的方法将有关打开的浏览器 window 的信息从 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,但无法按我想要的方式工作,接下来可能会尝试使用 import JSON。但是我想知道我是否缺少一种更简单的方法来实现我在这里想要的。
感谢评论中的 pguardiario 让我走上正轨。答案是使用 script2 作为模块。
我实际上已经尝试这样做了,但是它使我的 script1 崩溃了,因为我在脚本的命名中有破折号,当它们是脚本时它工作正常,但由于某种原因在它们被使用时不起作用作为模块,但也不会给您任何错误。它完全脱离了脚本(在我的 linux/python 3 设置中就是这种情况)。
解决文件命名问题后,解决方案出奇地简单。
在 script1.py 我现在有
import script2
然后我使用
从第二个脚本调用 main() 函数
script2.main
我不必对 script2 进行任何更改,它从本地文件夹运行,因此不需要额外的路径设置,我现在也可以删除所有脚本调用代码。
要点是不要在模块命名中使用破折号,因为它不会给您任何错误警告,但不会导入它们。
我正在尝试找到将数据从 python script2.py 传回调用脚本 (script1.py) 的最佳方法。我在 Linux.
上使用 Python 3Script1 调用 script2.py 然后使用 Selenium 打开浏览器 window 并做一些事情。当 script2 结束时,浏览器保持打开状态,而 script1 继续。我想要的是能够在 script1.
中在 script2 中打开的浏览器 window 上工作到目前为止,我未能找到合适的方法将有关打开的浏览器 window 的信息从 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,但无法按我想要的方式工作,接下来可能会尝试使用 import JSON。但是我想知道我是否缺少一种更简单的方法来实现我在这里想要的。
感谢评论中的 pguardiario 让我走上正轨。答案是使用 script2 作为模块。
我实际上已经尝试这样做了,但是它使我的 script1 崩溃了,因为我在脚本的命名中有破折号,当它们是脚本时它工作正常,但由于某种原因在它们被使用时不起作用作为模块,但也不会给您任何错误。它完全脱离了脚本(在我的 linux/python 3 设置中就是这种情况)。
解决文件命名问题后,解决方案出奇地简单。
在 script1.py 我现在有
import script2
然后我使用
从第二个脚本调用 main() 函数script2.main
我不必对 script2 进行任何更改,它从本地文件夹运行,因此不需要额外的路径设置,我现在也可以删除所有脚本调用代码。
要点是不要在模块命名中使用破折号,因为它不会给您任何错误警告,但不会导入它们。