我对python中使用selenium的并行执行感到困惑。似乎有一些方法可以解决这个问题,但有些似乎已经过时了。
我想知道使用selenium进行并行执行的最新方法是什么?
有一个名为python wd parallel的python模块似乎有一些功能来实现这一点,但它是从2013年开始的,现在它仍然有用吗?
例如https://saucelabs.com/blog/parallel-testing-with-python-and-selenium-on-sauce-online-workshop-recap
我们也有concurrent.future,这看起来更新了很多,但实现起来并不那么容易——有谁在selenium中有一个并行执行的工作示例吗?
也有使用线程和执行器来完成工作,但我觉得这会比较慢,因为它没有使用所有的核心,仍然以串行方式运行。
使用joblib's Parallel模块来实现这一点,它是一个很好的并行执行库。
假设我们有一个名为
urls
的url列表,并且我们希望并行拍摄每个url的屏幕快照首先让我们导入必要的库
现在让我们定义一个以屏幕截图为base64的函数
现在要并行执行,你要做的是
当这一行完成执行时,您将在
screenshots
中拥有所有运行的进程的所有数据。关于并行的解释
Parallel(n_jobs=-1)
意味着使用所有可以使用的资源delayed(function)(input)
是joblib
为试图并行运行的函数创建输入的方法更多信息可以在
joblib
文档中找到为此,我创建了一个项目,它重用webdriver实例以获得更好的性能:
https://github.com/testlabauto/local_selenium_pool
https://pypi.org/project/local-selenium-pool/
相关问题 更多 >
编程相关推荐