我有一个使用Selenium的python脚本。我需要同时运行脚本的多个实例,也就是说,同一个脚本使用不同的参数运行多次:
python my_script.py --arg1 2222222
python my_script.py --arg1 222
python my_script.py --arg1 342432
在代码中,它们都使用相同的浏览器(不是同一个窗口,但是使用相同的浏览器)。如果重要的话,每个脚本只使用一个线程。
所以可以同时运行它们吗?它会导致不当行为吗?或者通常一切都应该没问题?
我还没有在Selenium网站上找到有关该信息的信息。
并且更重要的是,他们会共享缓存/代理/ cookie还是浏览器的每个实例都有自己的?例如,如果我运行5个脚本,因此每个脚本都有自己的浏览器,比如Firefox,每个Firefox都有自己的缓存/代理/ cookie吗?
答案 0 :(得分:2)
每次我们通过Selenium调用浏览器时,它都会创建一个指定浏览器的新实例线程。如果已定义DesiredCapabilities,那么这些特定设置将应用于被调用的浏览器实例。
这就是确切原因,您可以运行selenium tests并行方式,运行浏览器的多个实例,其中每个浏览器都使用不同的脚本执行。
http://www.guru99.com/sessions-parallel-run-and-dependency-in-selenium.html提供了有关selenium如何处理浏览器实例的一些信息。
浏览器从没有存储缓存/代理/ Cookie的干净状态开始。您可以注意到selenium启动的浏览器实例将没有任何扩展/加载项。