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



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

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

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

不同的线程可以在同一个 Web 驱动程序上运行,但测试结果将不是您所期望的。让我解释一下。

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

您可以在 Webdriver 中阅读有关多线程的信息。

最新更新