循环时我应该在哪里实例化我的 WebDriver 实例?

Where should I instantiate my WebDriver instance when looping?

我正在迭代用于屏幕抓取的链接列表。这些页面有 JavaScript 所以我使用 Selenium。我定义了一个函数来获取每个页面的源代码。

  1. 我应该在该函数中实例化 WebDriver 吗?每个循环会发生一次?

  2. 或者我应该在函数外部实例化并将 WebDriver 传入?

  3. 或者将 WebDriver 分配给一个从函数内部可见的变量,而不显式传递它?

WebDriver 的每个实例化都会启动一个新的浏览器,这是一项非常昂贵的操作,因此选项 1 不是您想要的。

我也不会选择选项 3,因为在很容易避免的情况下依赖全局变量并不是好的编码习惯。

剩下选项 2:实例化 WebDriver 一次并将实例传递给您的函数。