Selenium可以在一个浏览器中使用多线程吗?

时间:2015-06-12 17:07:07

标签: multithreading selenium selenium-grid2

我想在多线程中测试网页,但是当我打开太多的chromedrivers时,他们会使用太多的内存。我可以在一个浏览器中使用多线程吗?

2 个答案:

答案 0 :(得分:16)

WebDriver不是线程安全的。线程安全问题不在您的代码中,而是在实际的浏览器绑定中。他们都假设一次只有一个命令(例如像真实用户一样)。但另一方面,你可以为每个线程实例化一个WebDriver实例,但是它将启动多个浏览器,这将消耗更多的内存...

希望这可以帮助你....如果你有任何疑问,请回来

答案 1 :(得分:12)

多线程应该在Webdriver的不同实例上完成,因为Webdriver本身就是一个单独的线程。

可以在同一个Webdriver上运行不同的线程,但测试结果不符合您的预期。让我解释一下。

当您使用多线程在不同的选项卡上运行不同的测试时(这不是不可能的,需要一点点编码),您将执行的操作(如单击或发送键)将转到当前打开的选项卡无论测试运行如何都集中精力。这意味着所有测试将同时在具有焦点的相同选项卡上运行,而不是在预期的选项卡上。

您可以阅读multithreading in Webdriver

相关问题